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 相关文章推荐
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
Sep 01 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
jQuery根据元素值删除数组元素的方法
Jun 24 Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
深入理解JavaScript 参数按值传递
May 24 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 Javascript
vue-router 路由基础的详解
Oct 17 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
微信小程序实现订单倒计时
Nov 01 Javascript
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 Javascript
Antd下拉选择,自动匹配功能的实现
Oct 24 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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
python装饰器初探(推荐)
2016/07/21 Python
Django工程的分层结构详解
2019/07/18 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
python zip()函数的使用示例
2020/09/23 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
质量工程师岗位职责
2013/11/16 职场文书
翻译专业应届生求职信
2013/11/23 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
有关打架的检讨书
2014/01/25 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
开业庆典致辞
2015/08/01 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS