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


Posted in Javascript onDecember 20, 2015

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

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

效果展示     源码下载

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

Javascript 相关文章推荐
写出更好的JavaScript之undefined篇(上)
Nov 22 Javascript
js滚动条回到顶部的代码
Dec 06 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
JavaScript AOP编程实例
Jun 16 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
Js动态设置rem来实现移动端字体的自适应代码
Oct 14 Javascript
js无提示关闭浏览器窗口的两种方法分析
Nov 06 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
Sep 19 Javascript
vue实现搜索功能
May 28 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
javascript实现扫雷简易版
Aug 18 Javascript
jQuery mobile 移动web(4)
Dec 20 #Javascript
基于jQuery实现放大镜特效
Oct 19 #Javascript
jQuery mobile 移动web(6)
Dec 20 #Javascript
jquery mobile 移动web(5)
Dec 20 #Javascript
js倒计时抢购实例
Dec 20 #Javascript
js代码实现点击按钮出现60秒倒计时
Jan 28 #Javascript
js实现无缝滚动特效
Dec 20 #Javascript
You might like
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
Java面试题汇总
2015/12/06 面试题
《与象共舞》教学反思
2014/02/24 职场文书
小学生操行评语
2014/04/22 职场文书
售后服务承诺书模板
2014/05/21 职场文书
设计大赛策划方案
2014/06/13 职场文书
体育节口号
2014/06/19 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
医生见习报告范文
2014/11/03 职场文书
领导参观欢迎词
2015/01/26 职场文书
观看建国大业观后感
2015/06/01 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
施工安全责任协议书
2016/03/23 职场文书