国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于jQuery和CSS3制作響應式水平時間軸附源碼下載

2019-11-20 10:58:19
字體:
來源:轉載
供稿:網友

我們經常看到有很多的垂直時間軸用來記錄事件進展,而有朋友問我要求分享水平的時間軸,其實水平時間軸的難點在于自適應屏幕尺寸。那么 今天我要給大家分享的是一款支持響應式、支持觸屏手勢滑動的水平時間軸。

效果展示     源碼下載

HTML

我們的HTML結構由兩部分組成,div.timeline用于放置日期導航水平線,它有水平多個日期div.events-wrapper和水平軸左右方向導航按鈕ul.cd-timeline-navigation組成。而div.events-content放置的是多個日期對應的事件節點,它又多個li元素組成,li元素里面可以放置圖片文字等任意HTML內容。注意這兩部分的html的li中都有data-date屬性,它的值是一個日期,正是通過data-date屬性將導航水平線與日期對應的事件內容關聯起來的。

<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>      <!-- 多個日期 -->     </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>標題</h2>     <em>January 16th, 2014</em>     <p>       文字或者圖片等任意HTML內容     </p>    </li>    <li data-date="28/02/2014">     <!-- 對應日期的事件描述信息 -->    </li>    <!-- 多個日期事件 -->   </ol>  </div> </section> 

CSS

來看時間軸事件的css設計,所有的事件節點初始都在視圖之外,就是看不到的,除了.selected當前選中的日期節點。我們使用.enter-right/.enter-left來為事件節點進入視圖時添加動畫,使用.leave-right/.leave-left來為事件節點離開視圖時添加動畫。本例運用了很多CSS3動畫效果,請看代碼:

.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中,根據每兩個日期之間間隔的長短來調整日期導航條上兩個日期節點的距離,當然要設置一個最小值(px),以及根據data-date屬性獲取日期,并將日期做格式化處理。使用jQuery實現點擊左右導航按鈕來實現事件內容的滑動效果,具體代碼由于比較多,就不在這里占用篇幅了,請大家下載源碼查看main.js里的代碼詳情,不做任何修改直接可以拿去應用到你的項目中去。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临洮县| 保靖县| 惠安县| 固安县| 龙海市| 松江区| 长武县| 扬州市| 巧家县| 伊通| 游戏| 南木林县| 新竹市| 宣武区| 香河县| 宜都市| 阳江市| 化德县| 天柱县| 金秀| 武山县| 如皋市| 吉隆县| 明水县| 紫阳县| 深泽县| 连州市| 庐江县| 积石山| 杭锦旗| 沿河| 新龙县| 麻栗坡县| 三原县| 宁阳县| 额尔古纳市| 克什克腾旗| 郑州市| 南靖县| 洛阳市| 六盘水市|