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 相关文章推荐
列表内容的选择
Jun 30 Javascript
List Information About the Binary Files Used by an Application
Jun 11 Javascript
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
js中关于一个分号的崩溃示例
Nov 11 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
Jun 06 Javascript
js数组去重的方法汇总
Jul 29 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
vue点击自增和求和的实例代码
Nov 06 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如何得到当前页和上一页的地址?
2006/11/27 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
PHP常用技巧汇总
2016/03/04 PHP
php json转换相关知识(小结)
2018/12/21 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
Python之列表实现栈的工作功能
2019/01/28 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
python制作微博图片爬取工具
2021/01/16 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
个人简历自我评价
2014/02/02 职场文书
擅自离岗检讨书
2014/02/11 职场文书
银行授权委托书范本
2014/10/04 职场文书
个人职业及收入证明
2014/10/13 职场文书
限期整改通知书
2015/04/22 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
导游词之大雁塔景区
2019/09/17 职场文书