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 相关文章推荐
JavaScript获得选中文本内容的方法
Dec 02 Javascript
利用div+jquery自定义滚动条样式的2种方法
Jul 18 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 Javascript
Bootstrap基本组件学习笔记之分页(12)
Dec 08 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
Jan 05 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
Jul 18 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
四十九个javascript小知识实用技巧
Nov 20 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
Bootstrap基础学习
2015/06/16 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
python中__slots__用法实例
2015/06/04 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
基于python使用tibco ems代码实例
2019/12/20 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
桥梁与隧道工程专业本科生求职信
2013/10/08 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
入党积极分子介绍信
2014/01/17 职场文书
公益广告宣传方案
2014/02/28 职场文书
工程项目建议书范文
2014/03/12 职场文书
小班下学期评语
2014/05/04 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
大学生自荐信怎么写
2015/03/26 职场文书