基于jQuery和CSS3制作響應(yīng)式水平時(shí)間軸附源碼下載
我們經(jīng)??吹接泻芏嗟拇怪睍r(shí)間軸用來(lái)記錄事件進(jìn)展,而有朋友問(wèn)我要求分享水平的時(shí)間軸,其實(shí)水平時(shí)間軸的難點(diǎn)在于自適應(yīng)屏幕尺寸。那么 今天我要給大家分享的是一款支持響應(yīng)式、支持觸屏手勢(shì)滑動(dòng)的水平時(shí)間軸。

HTML
我們的HTML結(jié)構(gòu)由兩部分組成,div.timeline用于放置日期導(dǎo)航水平線,它有水平多個(gè)日期div.events-wrapper和水平軸左右方向?qū)Ш桨粹oul.cd-timeline-navigation組成。而div.events-content放置的是多個(gè)日期對(duì)應(yīng)的事件節(jié)點(diǎn),它又多個(gè)li元素組成,li元素里面可以放置圖片文字等任意HTML內(nèi)容。注意這兩部分的html的li中都有data-date屬性,它的值是一個(gè)日期,正是通過(guò)data-date屬性將導(dǎo)航水平線與日期對(duì)應(yīng)的事件內(nèi)容關(guān)聯(lián)起來(lái)的。
<section class="cd-horizontal-timeline">
<div class="timeline">
<div class="events-wrapper">
<div class="events">
<ol>
<li><a href="#0" data-date="16/01/2014" class="selected">16 Jan</a></li>
<li><a href="#0" data-date="28/02/2014">28 Feb</a></li>
<!-- 多個(gè)日期 -->
</ol>
<span class="filling-line" aria-hidden="true"></span>
</div> <!-- .events -->
</div> <!-- .events-wrapper -->
<ul class="cd-timeline-navigation">
<li><a href="#0" class="prev inactive">Prev</a></li>
<li><a href="#0" class="next">Next</a></li>
</ul> <!-- .cd-timeline-navigation -->
</div> <!-- .timeline -->
<div class="events-content">
<ol>
<li class="selected" data-date="16/01/2014">
<h2>標(biāo)題</h2>
<em>January 16th, 2014</em>
<p>
文字或者圖片等任意HTML內(nèi)容
</p>
</li>
<li data-date="28/02/2014">
<!-- 對(duì)應(yīng)日期的事件描述信息 -->
</li>
<!-- 多個(gè)日期事件 -->
</ol>
</div>
</section>
CSS
來(lái)看時(shí)間軸事件的css設(shè)計(jì),所有的事件節(jié)點(diǎn)初始都在視圖之外,就是看不到的,除了.selected當(dāng)前選中的日期節(jié)點(diǎn)。我們使用.enter-right/.enter-left來(lái)為事件節(jié)點(diǎn)進(jìn)入視圖時(shí)添加動(dòng)畫(huà),使用.leave-right/.leave-left來(lái)為事件節(jié)點(diǎn)離開(kāi)視圖時(shí)添加動(dòng)畫(huà)。本例運(yùn)用了很多CSS3動(dòng)畫(huà)效果,請(qǐng)看代碼:
.cd-horizontal-timeline .events-content {
position: relative;
}
.cd-horizontal-timeline .events-content li {
position: absolute;
z-index: 1;
width: 100%;
left: 0;
top: 0;
transform: translateX(-100%);
opacity: 0;
animation-duration: 0.4s;
animation-timing-function: ease-in-out;
}
.cd-horizontal-timeline .events-content li.selected {
/* visible event content */
position: relative;
z-index: 2;
opacity: 1;
transform: translateX(0);
}
.cd-horizontal-timeline .events-content li.enter-right,
.cd-horizontal-timeline .events-content li.leave-right {
animation-name: cd-enter-right;
}
.cd-horizontal-timeline .events-content li.enter-left,
.cd-horizontal-timeline .events-content li.leave-left {
animation-name: cd-enter-left;
}
.cd-horizontal-timeline .events-content li.leave-right,
.cd-horizontal-timeline .events-content li.leave-left {
animation-direction: reverse;
}
@keyframes cd-enter-right {
0% {
opacity: 0;
transform: translateX(100%);
}
100% {
opacity: 1;
transform: translateX(0%);
}
}
@keyframes cd-enter-left {
0% {
opacity: 0;
transform: translateX(-100%);
}
100% {
opacity: 1;
transform: translateX(0%);
}
}
JS
在main.js中,根據(jù)每?jī)蓚€(gè)日期之間間隔的長(zhǎng)短來(lái)調(diào)整日期導(dǎo)航條上兩個(gè)日期節(jié)點(diǎn)的距離,當(dāng)然要設(shè)置一個(gè)最小值(px),以及根據(jù)data-date屬性獲取日期,并將日期做格式化處理。使用jQuery實(shí)現(xiàn)點(diǎn)擊左右導(dǎo)航按鈕來(lái)實(shí)現(xiàn)事件內(nèi)容的滑動(dòng)效果,具體代碼由于比較多,就不在這里占用篇幅了,請(qǐng)大家下載源碼查看main.js里的代碼詳情,不做任何修改直接可以拿去應(yīng)用到你的項(xiàng)目中去。
- 利用Jquery實(shí)現(xiàn)幾款漂亮實(shí)用的時(shí)間軸(附示例代碼)
- jQuery+HTML5+CSS3制作支持響應(yīng)式布局時(shí)間軸插件
- jQuery Timelinr實(shí)現(xiàn)垂直水平時(shí)間軸插件(附源碼下載)
- Jquery時(shí)間軸特效(三種不同類型)
- jQuery插件Timelinr 實(shí)現(xiàn)時(shí)間軸特效
- jQuery代碼實(shí)現(xiàn)發(fā)展歷程時(shí)間軸特效
- jQuery時(shí)間軸插件使用詳解
- TimergliderJS 一個(gè)基于jQuery的時(shí)間軸插件
- ThinkPHP+jquery實(shí)現(xiàn)“加載更多”功能代碼
- jQuery模擬原生態(tài)App上拉刷新下拉加載更多頁(yè)面及原理
- jQuery+AJAX實(shí)現(xiàn)無(wú)刷新下拉加載更多
- 基于JQuery實(shí)現(xiàn)滾動(dòng)到頁(yè)面底端時(shí)自動(dòng)加載更多信息
- jQuery簡(jiǎn)易時(shí)光軸實(shí)現(xiàn)方法示例
相關(guān)文章
通過(guò)jquery.cookie.js實(shí)現(xiàn)記住用戶名、密碼登錄功能
這篇文章主要介紹了通過(guò)jquery.cookie.js實(shí)現(xiàn)記住用戶名、密碼登錄功能,通過(guò)Cookies讓網(wǎng)站服務(wù)器把少量數(shù)據(jù)儲(chǔ)存到客戶端的硬盤(pán)或內(nèi)存,從客戶端的硬盤(pán)讀取數(shù)據(jù)的一種技術(shù);具體實(shí)現(xiàn)過(guò)程大家通過(guò)本文一起看看吧2018-06-06
jquery 插件實(shí)現(xiàn)多行文本框[textarea]自動(dòng)高度
這篇文章主要介紹了jquery 插件實(shí)現(xiàn)多行文本框[textarea]自動(dòng)高度,需要的朋友可以參考下2015-03-03
jquery ezUI 雙擊行記錄彈窗查看明細(xì)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇jquery ezUI 雙擊行記錄彈窗查看明細(xì)的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
CSS+Jquery實(shí)現(xiàn)頁(yè)面圓角框方法大全
前不久做項(xiàng)目,要用到大量的頁(yè)面圓角的框塊,以前實(shí)現(xiàn)的時(shí)候都是用圖片做背景之類的方法,那種方法對(duì)于少數(shù)的還是比較可行的,但是當(dāng)涉及到整個(gè)項(xiàng)目都要用 到這樣的效果時(shí)就顯得不夠優(yōu)化和簡(jiǎn)練了。2009-12-12
jQuery遍歷DOM元素與節(jié)點(diǎn)方法詳解
這篇文章主要介紹了jQuery遍歷DOM元素與節(jié)點(diǎn)方法,結(jié)合實(shí)例形似詳細(xì)分析了jQuery遍歷DOM父級(jí)節(jié)點(diǎn),子級(jí)節(jié)點(diǎn)及兄弟節(jié)點(diǎn)的相關(guān)技巧,需要的朋友可以參考下2016-04-04
JQuery操作tr和td內(nèi)容的方法實(shí)例
本文介紹了“JQuery操作tr和td內(nèi)容的方法實(shí)例”,需要的朋友可以參考一下2013-03-03
jQuery 源碼分析筆記(3) Deferred機(jī)制
從1.5版本開(kāi)始,jQuery加入了Deferred功能,讓事件處理隊(duì)列更加的完善。并用這個(gè)機(jī)制重寫(xiě)了Ajax模塊。雖然還沒(méi)輪到Ajax,但是接下來(lái)的事件處理函數(shù)中牽扯到了這個(gè)機(jī)制,所以提前看這段代碼。2011-06-06
jQuery Validate插件實(shí)現(xiàn)表單驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了jQuery Validate插件實(shí)現(xiàn)表單驗(yàn)證的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-08-08
jquery自定義插件開(kāi)發(fā)之window的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了jquery自定義插件開(kāi)發(fā)之window的實(shí)現(xiàn)過(guò)程的相關(guān)資料,需要的朋友可以參考下2016-05-05

