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 单击li防止重复加载的实现代码
Dec 24 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
Jan 17 Javascript
JQuery中SetTimeOut传参问题探讨
May 10 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
Nov 23 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
Feb 13 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
Javascript实现div的toggle效果实例分析
Jun 09 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
Js调用Java方法并互相传参的简单实例
Aug 11 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
vue proxy 的优势与使用场景实现
Jun 15 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获取网址的顶级域名函数代码
2012/09/24 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
JavaScript版代码高亮
2006/06/26 Javascript
用javascript控制iframe滚动的代码
2007/04/10 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
社会工作专业求职信
2014/07/15 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
同事打架检讨书
2015/05/06 职场文书
小学庆六一主持词
2015/06/30 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
Python基础之函数嵌套知识总结
2021/05/23 Python
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python