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 相关文章推荐
汉化英文版的Dreamweaver CS5并自动提示jquery
Nov 25 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
EasyUI中在表单提交之前进行验证
Jul 19 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
Oct 14 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
Jul 18 Javascript
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
react路由配置方式详解
Aug 07 Javascript
使用axios实现上传图片进度条功能
Dec 21 Javascript
Vue.js的动态组件模板的实现
Nov 26 Javascript
小程序外卖订单界面的示例代码
Dec 30 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
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
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
可以将word转成html的js代码
2010/04/11 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
使用Python的Django框架结合jQuery实现AJAX购物车页面
2016/04/11 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
Django实现学生管理系统
2019/02/26 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
绿化工程实施方案
2014/03/17 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
演讲开场白和结束语
2015/05/29 职场文书
使用python创建股票的时间序列可视化分析
2022/03/03 Python
PyTorch device与cuda.device用法
2022/04/03 Python
JS实现数组去重的11种方法总结
2022/04/04 Javascript
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js