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.ajax)
Nov 19 Javascript
js实现幻灯片播放图片示例代码
Nov 07 Javascript
使用javascript实现简单的选项卡切换
Jan 09 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
JavaScript创建对象的七种方式(推荐)
Jun 26 Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
自定义javascript验证框架示例【附源码下载】
May 31 Javascript
解决layer弹出层自适应页面大小的问题
Sep 16 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中的多态性[译]
2011/08/02 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php中动态变量用法实例
2015/06/10 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python类装饰器用法实例
2015/06/04 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
详解python读取和输出到txt
2019/03/29 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
由面试题加深对Django的认识理解
2019/07/19 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
Python页面加载的等待方式总结
2021/02/28 Python
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
酒店管理自荐信
2013/10/23 职场文书
校领导推荐信
2013/11/01 职场文书
贷款担保书范文
2014/05/13 职场文书
商铺消防安全责任书
2014/07/29 职场文书
基层党员对照检查材料
2014/09/24 职场文书
实习生矿工检讨书
2014/10/13 职场文书
污染环境建议书
2015/09/14 职场文书
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python