jQuery插件Timelinr 实现时间轴特效


Posted in Javascript onOctober 04, 2015

前言

这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程、大事件等场景。该插件基于jQuery,可以滑动切换、水平和垂直滚动、支持键盘方向键。经过扩展后可以支持鼠标滚轮事件。

HTML

我们在body中建立一个div#timeline作为展示区,#dates为时间轴,示例中我们用年份作为主轴,#issues作为内容展示区,即展示对应主轴点年份的内容,注意id对应上。

<div id="timeline"> 
  <ul id="dates"> 
   <li><a href="#2011">2011</a></li> 
   <li><a href="#2012">2012</a></li> 
  </ul> 
  <ul id="issues"> 
   <li id="2011"> 
     <p>Lorem ipsum.</p> 
   </li> 
   <li id="2012"> 
     <p>分享生活 留住感动</p> 
   </li> 
  </ul> 
  <a href="#" id="next">+</a> <!-- optional --> 
  <a href="#" id="prev">-</a> <!-- optional --> 
</div>

jQuery Timelinr依赖于jQuery,所以在html中要先载入jQuery库和jQuery Timelinr插件。

<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="jquery.timelinr-0.9.53.js"></script>

css

接下来用CSS来布局,你可以设置不同的CSS来控制时间轴是否横向排列还是纵向排列,根据需求自由发挥,以下给出的是纵向排列,即用于垂直滚动的样式。

#timeline {width: 760px;height: 440px;overflow: hidden;margin: 40px auto; 
position: relative;background: url('dot.gif') 110px top repeat-y;} 
#dates {width: 115px;height: 440px;overflow: hidden;float: left;} 
#dates li {list-style: none;width: 100px;height: 100px;line-height: 100px;font-size: 24px; 
 padding-right:20px; text-align:right; background: url('biggerdot.png') 108px center no-repeat;} 
#dates a {line-height: 38px;padding-bottom: 10px;} 
#dates .selected {font-size: 38px;} 
#issues {width: 630px;height: 440px;overflow: hidden;float: right;}   
#issues li {width: 630px;height: 440px;list-style: none;} 
#issues li h1 {color: #ffcc00;font-size: 42px; height:52px; line-height:52px; 
 text-shadow: #000 1px 1px 2px;} 
#issues li p {font-size: 14px;margin: 10px;line-height: 26px;}

jQuery

调用时间轴插件非常简单,执行以下代码:

$(function(){ 
  $().timelinr({ 
      orientation:'vertical' 
  }); 
});

jQuery Timelinr提供了很多可设置的选项,可以根据需要进行设置。如图所示:

jQuery插件Timelinr 实现时间轴特效

支持滚轮驱动

此外,当前的jQuery Timelinr并不支持鼠标滚轮驱动,其实我们可以稍微对插件做下扩展就可以支持鼠标滚轮驱动,这里需要用到滚轮时间插件:jquery.mousewheel.js

下载该插件后,在页面中导入:

<script src="jquery.mousewheel.js"></script>

然后,修改jquery.timelinr-0.9.53.js,大概在260行位置加入如下代码:

//--------------Added by helloweba.com 20130326---------- 
if(settings.mousewheel=="true") { //支持滚轮 
  $(settings.containerDiv).mousewheel(function(event, delta, deltaX, deltaY){ 
    if(delta==1){ 
      $(settings.prevButton).click(); 
    }else{ 
      $(settings.nextButton).click(); 
    } 
  }); 
}

我们在示例中屏蔽了按钮prevButton和nextButton,当设置了支持滚轮事件时,滚轮向上,相当于点击prevButton,滚轮向下,相当于点击了nextButton。

最后使用以下代码后,整个时间轴就可支持滚轮事件了

$(function(){ 
  $().timelinr({ 
    mousewheel:  'true' 
  }); 
});
Javascript 相关文章推荐
基于jquery的checkbox下拉框插件代码
Jun 25 Javascript
jQuery对html元素取值与赋值的方法
Nov 20 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
JS敏感词过滤代码
Dec 23 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
vue的.vue文件是怎么run起来的(vue-loader)
Dec 10 Javascript
ES2020 新特性(种草)
Jan 12 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 #Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 #Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 #Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 #Javascript
jQuery+PHP星级评分实现方法
Oct 02 #Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 #Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 #Javascript
You might like
JAVA/JSP学习系列之二
2006/10/09 PHP
php GD绘制24小时柱状图
2008/06/28 PHP
php adodb操作mysql数据库
2009/03/19 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
深入理解NumPy简明教程---数组1
2016/12/17 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
使用Scrapy爬取动态数据
2018/10/21 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
机械专业应届生求职信
2013/09/21 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
资料员岗位职责
2015/02/10 职场文书
小英雄雨来观后感
2015/06/09 职场文书
酒店开业主持词
2015/07/02 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP