这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程、大事件等场景。该插件基于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 src="jquery.min.js"></script>
<script 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提供了很多可设置的选项,可以根据需要进行设置。
选项 |
描述 |
默认值 |
orientation |
时间轴方向,可为水平(horizontal)或垂直(vertical) |
horizontal |
containerDiv |
时间轴展示主区域ID |
#timeline |
datesDiv |
时间轴主轴ID |
#dates |
datesSelectedClass |
当前主轴轴点的样式 |
selected |
datesSpeed |
主轴滚动速度,可为100~1000之间的数字,或者设置为’slow’, ‘normal’ or ‘fast’ |
normal |
issuesDiv |
主要内容展示区 |
#issues |
issuesSpeed |
对应内容区的滚动速度,可为100~1000之间的数字,或者设置为’slow’, ‘normal’ or ‘fast’ |
fast |
issuesTransparency |
内容区的切入时的透明度,在0~1之间取值 |
0.2 |
issuesTransparencySpeed |
内容区的切入时的透明度变化速度,100~1000之间的数字 |
500 |
prevButton |
用于点击展示前一项内容的按钮ID |
#prev |
nextButton |
用于点击展示后一项内容的按钮ID |
#next |
arrowKeys |
是否支持方向键,true or false |
false |
startAt |
初始化起点,即初始化轴点位置,数字 |
1 |
autoPlay |
是否自动滚动,true or false |
false |
autoPlayDirection |
滚动方向,forward or backward |
forward |
autoPlayPause |
自动滚动时停留时间,毫秒 |
2000 |
支持滚轮驱动
此外,当前的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。
然后在32行处加入初始化选项:
mousewheel: 'false'
最后使用以下代码后,整个时间轴就可支持滚轮事件了,查看demo。
$(function(){
$().timelinr({
mousewheel: 'true'
});
});
本文来源于helloweba.com。

Related Posts
移动前端工作的那些事---前端制作篇之框架篇为了更好的提升用户体验,移动端逐渐出了许多的移动端的框架,比如Sencha Touch、JQTouch、Jquery-moblie、jqMobi等等。这些框架都有优缺点,不同的框架应用在不同的项目中。现简单阐述一下各框架的优缺点: 一、Sencha Touch框架是一个重量级的框架、它上手较难,代码复杂,并且需要较强的程序基础才能学习,最开始的时候因为一个项目,想使用Sencha Touch框架,后来工期实在太紧张,根本没时间学习它并使用。所以最后转投其他框架。这个框架兼容性很高,运行起来的速度一般,需要长时间的学习且需要水平较高的程序基础才行。所以不太适合前端制作人员的使用。我会在以后的机会单开一篇关于它的使用demo。 二、JQTouch是一个轻量级框架、纯jquery写法,上手比较容易,代码容易理解,加载速度也很快,缺点是配合的移动端效果插件较少,需要很多外部的插件相结合,另外,个别插件还需要解决与框架之间的兼容问题。它的最大的一个弊端就是可利用和变通的布局较少。 三、Jquery-moblie也是一个轻量级框架、纯jquery写法,上手容易,代码容易理解,但由于其绑定的前端效果插件过多,且代码结构有些臃 肿,造成加载速度很慢。尤其是在android系统上测试,速度很慢。用户体验效果不太好,它比较适合开发IPAD或是IOS系统的高端机型。 四、jqMobi也是一个轻量级框架、它的语言基于jquery语言。并对其进行了简化,更有利于在移动设备上进行应用,并且速度很流畅。上手也比较容…
-
jquery在线预览PDF文件,打开PDF文件最主要的是使用到了一个jquery的插件jquery.media.js,使用这个插件就很容易实现了。 核心代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…