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 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
js加强的经典分页实例
Mar 15 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
浅谈javascript基础之客户端事件驱动
Jun 10 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
解决vue的变量在settimeout内部效果失效的问题
Aug 30 Javascript
解决layui富文本编辑器图片上传无法回显的问题
Sep 18 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
Sep 01 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
php的一个登录的类 [推荐]
2007/03/16 PHP
php格式化日期和时间格式化示例分享
2014/02/24 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
简单的vuex 的使用案例笔记
2018/04/13 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
python套接字流重定向实例汇总
2016/03/03 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
python 制作本地应用搜索工具
2021/02/27 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
护士进修自我鉴定
2014/02/07 职场文书
消防安全汇报材料
2014/02/08 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
结对共建工作方案
2014/06/02 职场文书
工程索赔意向书
2014/08/30 职场文书
转学证明范本
2015/06/19 职场文书
培训心得体会怎么写
2016/01/25 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python