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 相关文章推荐
node.js Web应用框架Express入门指南
May 28 Javascript
form.submit()不能提交表单的原因分析
Oct 23 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
Aug 19 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
flexslider.js实现移动端轮播
Feb 05 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
JavaScript解决浮点数计算不准确问题的方法分析
Jul 09 Javascript
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
vue实现移动端触屏拖拽功能
Aug 21 Javascript
js实现移动端轮播图滑动切换
Dec 21 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/05/04 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
destoon常用的安全设置概述
2014/06/21 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
vue的一个分页组件的示例代码
2017/12/25 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python变量和字符串详解
2017/04/29 Python
Python中扩展包的安装方法详解
2017/06/14 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
2014年终个人工作总结
2014/11/07 职场文书
Python+pyaudio实现音频控制示例详解
2022/07/23 Python