基于jQuery和CSS3制作响应式水平时间轴附源码下载

 更新时间:2015年12月20日 14:09:29   投稿:mrr  
我们经常看到有很多的垂直时间轴用来记录事件进展,而有朋友问我要求分享水平的时间轴,其实水平时间轴的难点在于自适应屏幕尺寸。那么 今天我要给大家分享的是一款支持响应式、支持触屏手势滑动的水平时间轴

我们经常看到有很多的垂直时间轴用来记录事件进展,而有朋友问我要求分享水平的时间轴,其实水平时间轴的难点在于自适应屏幕尺寸。那么 今天我要给大家分享的是一款支持响应式、支持触屏手势滑动的水平时间轴。

效果展示     源码下载

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里的代码详情,不做任何修改直接可以拿去应用到你的项目中去。

相关文章

  • 通过jquery.cookie.js实现记住用户名、密码登录功能

    通过jquery.cookie.js实现记住用户名、密码登录功能

    这篇文章主要介绍了通过jquery.cookie.js实现记住用户名、密码登录功能,通过Cookies让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术;具体实现过程大家通过本文一起看看吧
    2018-06-06
  • jquery 插件实现多行文本框[textarea]自动高度

    jquery 插件实现多行文本框[textarea]自动高度

    这篇文章主要介绍了jquery 插件实现多行文本框[textarea]自动高度,需要的朋友可以参考下
    2015-03-03
  • jquery ezUI 双击行记录弹窗查看明细的实现方法

    jquery ezUI 双击行记录弹窗查看明细的实现方法

    下面小编就为大家带来一篇jquery ezUI 双击行记录弹窗查看明细的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • CSS+Jquery实现页面圆角框方法大全

    CSS+Jquery实现页面圆角框方法大全

    前不久做项目,要用到大量的页面圆角的框块,以前实现的时候都是用图片做背景之类的方法,那种方法对于少数的还是比较可行的,但是当涉及到整个项目都要用 到这样的效果时就显得不够优化和简练了。
    2009-12-12
  • jQuery遍历DOM元素与节点方法详解

    jQuery遍历DOM元素与节点方法详解

    这篇文章主要介绍了jQuery遍历DOM元素与节点方法,结合实例形似详细分析了jQuery遍历DOM父级节点,子级节点及兄弟节点的相关技巧,需要的朋友可以参考下
    2016-04-04
  • JQuery操作tr和td内容的方法实例

    JQuery操作tr和td内容的方法实例

    本文介绍了“JQuery操作tr和td内容的方法实例”,需要的朋友可以参考一下
    2013-03-03
  • jQuery 源码分析笔记(3) Deferred机制

    jQuery 源码分析笔记(3) Deferred机制

    从1.5版本开始,jQuery加入了Deferred功能,让事件处理队列更加的完善。并用这个机制重写了Ajax模块。虽然还没轮到Ajax,但是接下来的事件处理函数中牵扯到了这个机制,所以提前看这段代码。
    2011-06-06
  • jQuery Validate插件实现表单验证

    jQuery Validate插件实现表单验证

    这篇文章主要为大家详细介绍了jQuery Validate插件实现表单验证的相关资料,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • jquery自定义插件开发之window的实现过程

    jquery自定义插件开发之window的实现过程

    这篇文章主要介绍了jquery自定义插件开发之window的实现过程的相关资料,需要的朋友可以参考下
    2016-05-05
  • jQuery插件扩展操作入门示例

    jQuery插件扩展操作入门示例

    这篇文章主要介绍了jQuery插件扩展操作,结合简单实例形式分析了jQuery扩展方法的定义与使用技巧,非常简单易懂,需要的朋友可以参考下
    2017-01-01

最新评论