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 each()方法的使用方法
Mar 18 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
Jul 01 Javascript
JS OffsetParent属性深入解析
Jan 13 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
Aug 25 Javascript
基于IView中on-change属性的使用详解
Mar 15 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
JS中的继承操作实例总结
Jun 06 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
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
jquery实用代码片段集合
2010/08/12 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python提取log文件内容并画出图表
2019/07/08 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
HEMA法国:荷兰原创设计
2019/02/21 全球购物
出纳员岗位职责风险
2014/03/06 职场文书
春季防火方案
2014/05/10 职场文书
写得不错的求职信范文
2014/07/11 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
餐厅开业活动方案
2019/07/08 职场文书
python绘制箱型图
2021/04/27 Python
在Django中使用MQTT的方法
2021/05/10 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python