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动态添加及删除页面节点元素示例代码
Jun 16 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
JavaScript实现打开链接页面的方式汇总
Jun 02 Javascript
js轮播图代码分享
Jul 14 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
Jun 07 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
JS关于刷新页面的相关总结
May 09 Javascript
JavaScript设计模式之代理模式简单实例教程
Jul 03 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
jQuery zTree插件快速实现目录树
Aug 16 jQuery
webpack的 rquire.context用法实现工程自动化的方法
Feb 07 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/12/06 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
php自动加载代码实例详解
2021/02/26 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
详解Python中time()方法的使用的教程
2015/05/22 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
python 接口返回的json字符串实例
2018/03/27 Python
python实现词法分析器
2019/01/31 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
英语专业学生个人求职信
2014/01/28 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
2014年网管工作总结
2014/12/11 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python
python manim实现排序算法动画示例
2022/08/14 Python
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL