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 相关文章推荐
Prototype PeriodicalExecuter对象 学习
Jul 19 Javascript
java、javascript实现附件下载示例
Aug 14 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
Angular中的Promise对象($q介绍)
Mar 03 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
Bootstrap每天必学之响应式导航、轮播图
Apr 25 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
解析Vue.js中的组件
Feb 02 Javascript
AngularJS修改model值时,显示内容不变的实例
Sep 13 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python获取中文字符串长度的方法
2018/11/14 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
解决python运行效率不高的问题
2020/07/20 Python
如何填写个人简历自我评价
2013/12/10 职场文书
教师自我评价范文
2013/12/16 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
先进事迹材料范文
2014/12/29 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书