jQuery时间轴插件:jQuery Timelinr
这款插件用于展示历史进程与重大计划的时间轴,并特别适用于一些网站展示发展历程与大事件的场景。它基于jQuery技术实现功能,并提供滑动切换、水平与垂直方向的滚动操作。插件还允许用户通过键盘方向键进行操作。经过功能扩展后可新增鼠标滚轮操作。

HTML
我们决定在body中创建一个div元素标记为#timeline用于展示时间线数据。其中#dates被定义为时间轴,默认情况下使用年份作为主要的时间刻度。例如,在这些案例中,默认情况下使用年份作为主要的时间刻度。同时设置了一个区域用于显示具体事件或信息。其作用是呈现相应时间点上的事件或相关信息。特别提醒确保所有引用标识符与相关数据一致。
<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
调用时间轴插件非常简单,执行以下代码:
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)并未实现基于鼠 wheel 的时间轴渲染功能。实际上我们可以通过对插件稍作修改即可实现基于鼠 wheel 的时间轴渲染需求。为此我们需要引入滚动时间轴组件:jquery.mousewheel.js
下载该插件后,在页面中导入。
然后,修改jquery.timelinr-0.9.53.js,大概在260行位置加入如下代码:
在示例中我们对按钮prevButton和nextButton进行了隐藏处理。当系统配置支持滚轮事件后,默认情况下向上滚动动作与prevButton按钮的点击相同,而向下滚动则等同于点击nextBuffer按钮。
然后在32行处加入初始化选项:
当在末尾处插入这段代码时, 所有时间轴均可支持滚动轮事件. 查看演示页面
本文来源于 helloweba.com。
