利用Jquery实现几款漂亮实用的时间轴(附示例代码)

前端之家收集整理的这篇文章主要介绍了利用Jquery实现几款漂亮实用的时间轴(附示例代码)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

最近在项目中使用了很多前端的东西,对于我一个做后台开发的人员,这是一个很好的锻炼的机会。经过这段时间的学习,感觉前端的东西太多了,太强大了,做出来的东西太炫酷了。现在有很多开源的前端框架,做的都非常的漂亮,h5发展了这么多年了,改变了互联网行业啊!

时间轴是一个按时间顺序描述一系列事件的很好方式,经常用在项目规划中。时间轴的典型方案通常设计成一个包含许多长条的带有数据标签的图形,当事件发生的时候则在这些长条的上方进行标记。 下面给大家介绍几款漂亮的时间轴,也许大家以后工作中会用到。

一、纵向折叠时间轴

1、js文件(jQuery.js或者jQuery.min.js)

2、CSS文件

中文 w3",宋体,Arial,Tahoma,sans-serif,serif;word-wrap:break-word;background: #F0F0F0;} input,button,textarea,select,option,optiongroup{font-family:inherit;font-size:inherit;} code,pre{font-family:"Microsoft YaHei",Consolas,"Courier New",monospace;} .bw0{border: none !important;} *:focus{outline:0;} legend{color:#000;} input,select{vertical-align:middle;} button{overflow:visible;} input.button,button{cursor:pointer;} button,input,textarea{margin:0;} textarea{overflow:auto;resize:none;} label[for],input[type="button"],input[type="submit"],input[type="reset"]{cursor:pointer;} input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,button::-moz-focus-inner{border:0;padding:0;} a { text-decoration:none;color:#1C3D72 } img{-ms-interpolation-mode:bicubic;} /* new clearfix */ .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } * html .clearfix { zoom: 1; } /* IE6 */ *:first-child+html .clearfix { zoom: 1; } /* IE7 */ .hidden{display:none;} .last{border-bottom:none !important;} blockquote{background:#f9f9f9;padding:8px 20px;border:1px solid #ccc;} .page { display:table;margin:0 auto;background:#fff;-moz-Box-shadow: 0 5px 20px #CCCCCC;-webkit-Box-shadow: 0 5px 20px #CCCCCC;Box-shadow: 0 5px 20px #CCCCCC;} .link li { float:left;display:inline;margin-left:60px; } .link li a{color:#4F4E4E;font-size:16px;font-weight:500;padding-bottom:6px;display:block;} .link li.active{border-bottom:2px solid #0066ff;} .link li.active a{color:#0066FF } .link li:hover { border-bottom:2px solid #0066ff;color:#0066FF } .link li a:hover{color:#0066FF } .adlist{padding:20px;} .adlist li{float:left;diaplay:inline;margin-left:30px;margin-bottom:20px;width:110px;}

.main { width:940px;margin:40px auto 10px auto;font-size:14px;display:table;padding-bottom:10px; border-bottom:1px solid #EEEEEE}
.info { width:300px;float:left;margin-right:20px; }
.info h3 { width:300px;height:26px;background:url('/../img/ictb.png') no-repeat;font-size:0;margin-bottom:8px; }
.info ul{margin-left:-10px;}
.info ul li{list-style:none;float:left;width:140px;padding-left:0;background:none;margin-left:10px;}
.info ul{margin-left:-10px;}
.b2 h3 { background-position:0 -26px; }
.b3 { margin:0;position:relative; }
.b3 span{position:absolute;right:10px;top:0;background:url('../img/morelink.gif') no-repeat left center;padding-left:12px;}
.b3 span a{color:#8C8C8C;font-weight:600}
.b3 h3 { background-position:0 -52px; }
.info li { padding:3px 0 3px 12px;background:url('../img/dian.png') 2px center no-repeat; }
.info li a { color:#8c8c8c; }
.info p { color:#8c8c8c; }
.info p img { display:table;margin:10px 0; }
.morelink{padding-top:20px;}
.morelink li{float:left;width:180px;}

.Box { width:940px;margin:18px auto 0 auto; }
.left { width:140px;border-bottom:2px solid #DDD;background:#FFF;float:left; }
.left li:hover { border-left:3px solid #0066ff; }
.left li a { height:40px;line-height:40px;display:block;color:#333 }
.left li a:hover,.left li.active a{color:#0066FF}
.left li.active{border-left:3px solid #0066ff;}
.left li {
border-left:3px solid #fff;
border-bottom: 1px solid #EEEEEE;
font-size: 14px;
height: 40px;
margin-bottom: 1px;
overflow: hidden;
padding-left: 25px;
}

.event_year { width:100px;border-bottom:2px solid #DDD;text-align:center;float:left;margin-top:70px;margin-left:-60px; }
.event_year li { height:40px;line-height:40px;background:#FFF;margin-bottom:1px;font-size:18px;color:#828282;cursor:pointer; }
.event_year li.current { width:100px;background:#0066ff url('../img/jian.png') 100px 0 no-repeat;color:#FFF;text-align:left;padding-left:9px; }
.event_list { width:850px;float:right;background:url('../img/dian3.png') 139px 0 repeat-y;margin-left:50px;margin-top:70px; }
.event_list h3 { margin:0 0 10px 132px;font-size:24px;font-family:Georgia;color:#0066ff;padding-left:25px;background:url('../img/jian.png') 0 -45px no-repeat;height:38px;line-height:30px;font-style:italic; }
.event_list li { background:url('../img/jian.png') 136px -80px no-repeat; }
.event_list li span { width:127px;text-align:right;display:block;float:left;margin-top:10px; }
.event_list li p { width:680px;margin-left:24px;display:inline-block;padding-left:10px;background:url('../img/jian.png') -21px 0 no-repeat;line-height:25px;_float:left; }
.event_list li p span { width:650px;text-align:left;border-bottom:2px solid #DDD;padding:10px 15px;background:#FFF;margin:0; }

.titlelist{line-height:24px;color: #8C8C8C;padding-bottom:20px;}
.titlelist dt { font-weight: bold;color:#666;white-space: nowrap;margin:10px;}
.titlelist dd {padding-left: 13px;}
h1 {
background: url("http://ww.chinaz.com/about/images/h1-bg.gif") no-repeat scroll left bottom rgba(0,0);
font-family: Tahoma,sans-serif;
font-size: 14px;
margin-bottom: 15px;
padding-bottom: 12px;
}
.hr {
border-top: 1px solid #CCD5DE;
font-size: 0;
height: 0;
line-height: 0;
margin: 15px 0;
}
.red {
color: #0065CB;
font-size:15px;
}

3、HTML代码

<Meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 静态可以折叠时光轴
Box">

  • 20170111 22:32:45

    出入口系统

  • 20170111 21:00:31

    停车场系统

  • 20170111 17:30:45

    楼宇门禁系统

  • 20170112 14:03:41

    视频监控系统

  • 20170112 11:24:47

    电子巡更系统

  • 20170112 14:03:41

    视频监控系统

  • 20170112 14:03:41

    视频监控系统

  • 4、运行效果

    二、纵向鼠标滑动时间轴

    1、js文件(jquery.js和jquery.mousewheel.js,jquery.easing.js,自定义history.js)

    (1)jquery.mousewheel.js文件

    (2)jquery.easing.js文件

    Box/jquery/easing/ * * Uses the built in easing capabilities added In jQuery 1.1 * to offer multiple easing options * * TERMS OF USE - EASING EQUATIONS * * Open source under the BSD License. * * Copyright © 2001 Robert Penner * All rights reserved. * * TERMS OF USE - jQuery Easing * * Open source under the BSD License. * * Copyright © 2008 George McGinley Smith * All rights reserved. * * Redistribution and use in source and binary forms,with or without modification,* are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice,this list of * conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice,this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of the author nor the names of contributors may be used to endorse * or promote products derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES,INCLUDING,BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,INDIRECT,INCIDENTAL,SPECIAL,* EXEMPLARY,OR CONSEQUENTIAL DAMAGES (INCLUDING,PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE,DATA,OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY,WHETHER IN CONTRACT,STRICT LIABILITY,OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * */ jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"eaSEOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,g)},easeInQuad:function(e,g){return h*(f/=g)*f+a},eaSEOutQuad:function(e,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,g){return h*(f/=g)*f*f+a},eaSEOutCubic:function(e,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,g){return h*(f/=g)*f*f*f+a},eaSEOutQuart:function(e,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,g){return h*(f/=g)*f*f*f*f+a},eaSEOutQuint:function(e,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},eaSEOutSine:function(e,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},eaSEOutExpo:function(e,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},eaSEOutCirc:function(e,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(gSEOutElastic:function(f,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(gSEOutBack:function(e,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,g){return h-jQuery.easing.eaSEOutBounce(e,g-f,g)+a},eaSEOutBounce:function(e,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,g){if(fSEOutBounce(e,f*2-g,g)*0.5+h*0.5+a}});

    (3)history.js文件

    (function(e){e.extend(e.fx.step,{
    backgroundPosition:function(b){
    function f(a){
    a=a.replace(/left|top/g,"0px");
    a=a.replace(/right|bottom/g,"100%");
    a=a.replace(/([0-9.]+)(\s|)|$)/g,"$1px$2");
    a=a.match(/(-?[0-9.]+)(px|\%|em|pt)\s(-?[0-9.]+)(px|\%|em|pt)/);
    return[parseFloat(a[1],a[4]]
    }
    if(0===b.state&&"string"==typeof b.end){
    var d=e.curCSS(b.elem,"backgroundPosition"),d=f(d);
    b.start=[d[0],d[2]];d=f(b.end);b.end=[d[0],d[2]];
    b.unit=[d[1],d[3]]}d=[];
    d[0]=(b.end[0]-b.start[0]) b.pos+b.start[0]+b.unit[0];
    d[1]=(b.end[1]-b.start[1])
    b.pos+b.start[1]+b.unit[1];
    b.elem.style.backgroundPosition=d[0]+" "+d[1]
    }
    }
    )})(jQuery);

    $(function(){
    function e(){
    c=$(".list li").eq(d).find(".year").html();
    $(".timeblock").attr("thisyear",c);
    var a=c.split(""),b=["numf","nums","numt","numfo"];
    for(i=0;4>i;i++)
    $("."+b[i]+"").stop(!0,!1).animate({backgroundPosition:"0px "+-24a[i]},{duration:200})}
    $(".list .liwrap").mouSEOver(function(){
    $(".list li").removeClass("thiscur");
    $(this).parent().addClass("thiscur")
    });
    var b=0,f=$(".list li").length,d=0,a=!0,c;
    (function(){
    var a=$(window).height();
    890<=a&&(row=6);
    800<=a&&890>a&&(row=5);
    726<=a&& 800>a&&(row=4);
    726>a&&(row=3)}
    )();
    var h=f-row;
    $(".list").height(110
    row);
    $("#content").height(110row+25);
    $.fn.lIoUt=function(){
    $(this).find(".lileft").animate({left:"-130px"},200,"eaSEOutQuart");
    $(this).find(".liright").animate({right:"-400px"},"eaSEOutQuart")
    };
    $.fn.liIn=function(){
    $(this).find(".lileft").animate({ left: "5px" },"eaSEOutQuart");
    $(this).find(".liright").animate({ right: "-130px" },"eaSEOutQuart")
    };
    $(".arrowdown").click(function(){
    a&&parseInt($(".list li:first").css("marginTop"))> -110
    h&&(d++,b--,a=!1,$(".list li").eq(d-1).lIoUt(),$(".list li").eq(d+row-1).liIn(),$(".list li:first").animate({marginTop:110b},600,"easeInOutQuad",function(){
    a=!0;$(".arrowdown").css("opacity",1);
    $(".arrowdown").removeClass("arrow_active")
    }),e()
    )});
    $(".arrowup").click(function(){
    a&&0!=parseInt($(".list li:first").css("marginTop"))&&(b++,d--,$(".list li").eq(d).liIn(),$(".list li").eq(d+row).lIoUt(),function(){
    a=!0;$(".arrowup").css("opacity",1);
    $(".arrowup").removeClass("arrow_active")
    }),e()
    )});
    $(".list").mousewheel(function(b,c){
    Math.abs(c);
    if(a){
    var d=parseInt($(".list li:first").css("marginTop"));
    0<c?0!=d&&($(".arrowup").addClass("arrow_active"),$(".arrowup").trigger("click")):d>-110
    h&&($(".arrowdown").addClass("arrow_active"),$(".arrowdown").trigger("click"))
    }
    });
    $(".timeblock").attr("thisyear",c);
    $(".list li:gt("+(row-1)+")").find(".lileft").css({left:"-130px"});
    $(".list li:gt("+(row-1)+")").find(".liright").css({right:"-400px"});

    });

    2、CSS文件

    页面作为背景*/_background-attachment:fixed; /* prevent screen flash in IE6 确保滚动条滚动时,元素不闪动*/ } body{color:#535353;font-size:12px;font-family: "arial","微软雅黑";background:#f0f1f1;} .clear{clear:both;display:block;height:0;overflow:hidden;}

    / history /

    history{width:350px;height:450px;position:fixed;margin:50px auto 0 auto;}

    .title{height:95px;line-height:95px;text-indent:40px;}
    .title h2{color:#7c7c7c;font-size:18px;font-weight:500;}

    circle{

    width:83px;height:83px;position:absolute;top:0;left:130px;border:6px solid rgba(0,0.15);border-radius:95px;text-indent:0;text-align:center;
    -webkit-transition:all 0.3s linear;
    -moz-transition:all 0.3s linear;
    -o-transition:all 0.3s linear;
    transition:all 0.3s linear;
    }

    circle .cmsk{height:83px;position:absolute;width:83px;top:0;left:0;}

    circle:hover{

    transform:rotate(360deg);
    -ms-transform:rotate(360deg);
    -moz-transform:rotate(360deg);
    -webkit-transform:rotate(360deg);
    -o-transform:rotate(360deg);
    border-color:rgba(0,0);
    }
    .clock{display:block;}

    circle:hover {border-color:rgba(255,255,0.6);background-color:#6bc30d;}

    circle:hover .clock{display:block;}

    circle:hover .circlecontent{display:none;}

    circle span{font-size:18px;color:#b0b0b0;}

    circle .clock{

    background:url(../img/clock.png) no-repeat 0 0;width:83px;height:83px;position:absolute;top:0;left:0;display:none;
    -webkit-transition:all 0.5s linear;
    -moz-transition:all 0.5s linear;
    -o-transition:all 0.5s linear;
    transition:all 0.5s linear;
    border-radius:0;
    }

    circle:hover .clock{border-radius:83px;}

    .timeyear{color:#b0b0b0;font-size:18px;line-height:20px;}
    .timeblock{height:28px;margin-top:22px;margin-left:5px;}
    .timeblock span{display:block;height:24px;width:18px;background:url(../img/date.png) no-repeat 0 0;float:left;}
    .timeblock .numf{background-position:0px -48px;}
    .timeblock .nums{background-position:0px 0px;}
    .timeblock .numt{background-position:0px -24px;}
    .timeblock .numfo{background-position:0px -72px;}

    content{height:355px;width:500px;overflow:hidden;background:url(../img/vertical.png) no-repeat 170px 2px;padding-top:10px;}

    .list{overflow:hidden;position:relative;}
    .list li{height:110px;vertical-align:bottom;overflow:hidden;position:relative;}
    .liwrap{height:55px;margin-top:28px;}
    .lileft{position:absolute;top:0;left:0px;height:55px;width:130px;line-height:55px;text-align:right;}
    .liright{position:absolute;top:0;right:-150px;height:55px;width:430px;}
    .histt{height:35px;line-height:35px;}
    .hisct{font-size:14px;color:#6e6e6e;}
    .md{font-size:18px;color:#AEAEAE;}
    .year{font-size:12px;color:#AEAEAE;margin-right:10px;}
    .point{width:55px;height:55px;position:absolute;top:0;left:145px;background:url(../img/point.png) no-repeat 0px 18px;overflow:hidden;}
    .point b{
    height:16px;width:16px;background:#fff;display:block;margin:17px 0 0 19px;border-radius:18px;border:2px solid #6bc30d;
    -webkit-transition:all 0.1s linear;
    -moz-transition:all 0.1s linear;
    -o-transition:all 0.1s linear;
    transition:all 0.1s linear;
    position:absolute;
    top:0;left:0;
    }
    .thiscur .point b{border:7px solid rgba(107,195,13,0.6);margin:12px 0px 0px 14px;border-radius:52px;}
    .thiscur .histt a{color:#6bc30d;}
    .histt a{
    font-size:24px;color:#747474;
    -webkit-transition:all 0.3s linear;
    -moz-transition:all 0.3s linear;
    -o-transition:all 0.3s linear;
    transition:all 0.3s linear;
    }

    arrow{position:fixed;top:4%;left:30px;}

    *html #arrow{position:absolute;top:expression(eval(document.documentElement.scrollTop));margin-top:350px;}

    arrow ul li{

    display:block;height:20px;width:20px;background:url(../img/icons.png) no-repeat 0 0;cursor:pointer;
    -webkit-transition:all 0.2s ease-out;
    -moz-transition:all 0.2s ease-out;
    -o-transition:all 0.2s ease-out;
    transition:all 0.2s ease-out;
    }

    arrow ul li:active{background-color:#000;}

    arrow ul .arrow_active{

    background-color:#000;
    -webkit-transition:all 0.1s ease-in;
    -moz-transition:all 0.1s ease-in;
    -o-transition:all 0.1s ease-in;
    transition:all 0.1s ease-in;
    }

    arrow ul .arrowup{background-position:0px -26px;margin-bottom:10px;}

    arrow ul .arrowdown{background-position:0px 0px;}

    3、HTML代码

    时间轴
    <script type="text/javascript" src="js/main.js">

    4、运行效果

    四、横向时间轴

    1、js文件(jquery.js和jquery.timelinr-0.9.5.3.js)

    (1)jquery.timelinr-0.9.5.3.js文件

    Copyright 2011,CSSLab.cl
    Free under the MIT license.
    http://www.opensource.org/licenses/mit-license.PHP

    instructions: http://www.csslab.cl/2011/08/18/jquery-timelinr/
    ---------------------------------- */

    jQuery.fn.timelinr = function(options){
    // default plugin settings
    settings = jQuery.extend({
    orientation: 'horizontal',// value: horizontal | vertical,default to horizontal
    containerDiv: '#timeline',// value: any HTML tag or #id,default to #timeline
    datesDiv: '#dates',default to #dates
    datesSelectedClass: 'selected',// value: any class,default to selected
    datesSpeed: 'normal',// value: integer between 100 and 1000 (recommended) or 'slow','normal' or 'fast'; default to normal
    issuesDiv: '#issues',default to #issues
    issuesSelectedClass: 'selected',default to selected
    issuesSpeed: 'fast','normal' or 'fast'; default to fast
    issuesTransparency: 0.2,// value: integer between 0 and 1 (recommended),default to 0.2
    issuesTransparencySpeed: 500,// value: integer between 100 and 1000 (recommended),default to 500 (normal)
    prevButton: '#prev',default to #prev
    nextButton: '#next',default to #next
    arrowKeys: 'false',// value: true | false,default to false
    startAt: 1,// value: integer,default to 1 (first)
    autoPlay: 'false',default to false
    autoPlayDirection: 'forward',// value: forward | backward,default to forward
    autoPlayPause: 2000 // value: integer (1000 = 1 seg),default to 2000 (2segs)

    },options);

    $(function(){
    // setting variables... many of them
    var howManyDates = $(settings.datesDiv+' li').length;
    var howManyIssues = $(settings.issuesDiv+' li').length;
    var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass);
    var currentIssue = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass);
    var widthContainer = $(settings.containerDiv).width();
    var heightContainer = $(settings.containerDiv).height();
    var widthIssues = $(settings.issuesDiv).width();
    var heightIssues = $(settings.issuesDiv).height();
    var widthIssue = $(settings.issuesDiv+' li').width();
    var heightIssue = $(settings.issuesDiv+' li').height();
    var widthDates = $(settings.datesDiv).width();
    var heightDates = $(settings.datesDiv).height();
    var widthDate = $(settings.datesDiv+' li').width();
    var heightDate = $(settings.datesDiv+' li').height();
    // set positions!
    if(settings.orientation == 'horizontal') {
    $(settings.issuesDiv).width(widthIssuehowManyIssues);
    $(settings.datesDiv).width(widthDate
    howManyDates).css('marginLeft',widthContainer/2-widthDate/2);
    var defaultPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
    } else if(settings.orientation == 'vertical') {
    $(settings.issuesDiv).height(heightIssuehowManyIssues);
    $(settings.datesDiv).height(heightDate
    howManyDates).css('marginTop',heightContainer/2-heightDate/2);
    var defaultPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
    }

    $(settings.datesDiv+' a').click(function(event){
    event.preventDefault();
    // first vars
    var whichIssue = $(this).text();
    var currentIndex = $(this).parent().prevAll().length;
    // moving the elements
    if(settings.orientation == 'horizontal') {
    $(settings.issuesDiv).animate({'marginLeft':-widthIssuecurrentIndex},{queue:false,duration:settings.issuesSpeed});
    } else if(settings.orientation == 'vertical') {
    $(settings.issuesDiv).animate({'marginTop':-heightIssue
    currentIndex},duration:settings.issuesSpeed});
    }
    $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},duration:settings.issuesSpeed}).removeClass(settings.issuesSelectedClass).eq(currentIndex).addClass(settings.issuesSelectedClass).fadeTo(settings.issuesTransparencySpeed,1);
    // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows | bugfixed: arrows not showing when jumping from first to last date
    if(howManyDates == 1) {
    $(settings.prevButton+','+settings.nextButton).fadeOut('fast');
    } else if(howManyDates == 2) {
    if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) {
    $(settings.prevButton).fadeOut('fast');
    $(settings.nextButton).fadeIn('fast');
    }
    else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) {
    $(settings.nextButton).fadeOut('fast');
    $(settings.prevButton).fadeIn('fast');
    }
    } else {
    if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) {
    $(settings.nextButton).fadeIn('fast');
    $(settings.prevButton).fadeOut('fast');
    }
    else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) {
    $(settings.prevButton).fadeIn('fast');
    $(settings.nextButton).fadeOut('fast');
    }
    else {
    $(settings.nextButton+','+settings.prevButton).fadeIn('slow');
    }
    }
    // now moving the dates
    $(settings.datesDiv+' a').removeClass(settings.datesSelectedClass);
    $(this).addClass(settings.datesSelectedClass);
    if(settings.orientation == 'horizontal') {
    $(settings.datesDiv).animate({'marginLeft':defaultPositionDates-(widthDatecurrentIndex)},duration:'settings.datesSpeed'});
    } else if(settings.orientation == 'vertical') {
    $(settings.datesDiv).animate({'marginTop':defaultPositionDates-(heightDate
    currentIndex)},duration:'settings.datesSpeed'});
    }
    });

    $(settings.nextButton).bind('click',function(event){
    event.preventDefault();
    if(settings.orientation == 'horizontal') {
    var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px')));
    var currentIssueIndex = currentPositionIssues/widthIssue;
    var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
    var currentIssueDate = currentPositionDates-widthDate;
    if(currentPositionIssues <= -(widthIssuehowManyIssues-(widthIssue))) {
    $(settings.issuesDiv).stop();
    $(settings.datesDiv+' li:last-child a').click();
    } else {
    if (!$(settings.issuesDiv).is(':animated')) {
    $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues-widthIssue},duration:settings.issuesSpeed});
    $(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},duration:settings.issuesSpeed});
    $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).next().fadeTo(settings.issuesTransparencySpeed,1).addClass(settings.issuesSelectedClass);
    $(settings.datesDiv).animate({'marginLeft':currentIssueDate},duration:'settings.datesSpeed'});
    $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass);
    }
    }
    } else if(settings.orientation == 'vertical') {
    var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px')));
    var currentIssueIndex = currentPositionIssues/heightIssue;
    var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
    var currentIssueDate = currentPositionDates-heightDate;
    if(currentPositionIssues <= -(heightIssue
    howManyIssues-(heightIssue))) {
    $(settings.issuesDiv).stop();
    $(settings.datesDiv+' li:last-child a').click();
    } else {
    if (!$(settings.issuesDiv).is(':animated')) {
    $(settings.issuesDiv).animate({'marginTop':currentPositionIssues-heightIssue},1).addClass(settings.issuesSelectedClass);
    $(settings.datesDiv).animate({'marginTop':currentIssueDate},duration:'settings.datesSpeed'});
    $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().next().children().addClass(settings.datesSelectedClass);
    }
    }
    }
    // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows
    if(howManyDates == 1) {
    $(settings.prevButton+','+settings.nextButton).fadeOut('fast');
    } else if(howManyDates == 2) {
    if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) {
    $(settings.prevButton).fadeOut('fast');
    $(settings.nextButton).fadeIn('fast');
    }
    else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) {
    $(settings.nextButton).fadeOut('fast');
    $(settings.prevButton).fadeIn('fast');
    }
    } else {
    if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) {
    $(settings.prevButton).fadeOut('fast');
    }
    else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) {
    $(settings.nextButton).fadeOut('fast');
    }
    else {
    $(settings.nextButton+','+settings.prevButton).fadeIn('slow');
    }
    }
    });

    $(settings.prevButton).click(function(event){
    event.preventDefault();
    if(settings.orientation == 'horizontal') {
    var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
    var currentIssueDate = currentPositionDates+widthDate;
    if(currentPositionIssues >= 0) {
    $(settings.issuesDiv).stop();
    $(settings.datesDiv+' li:first-child a').click();
    } else {
    if (!$(settings.issuesDiv).is(':animated')) {
    $(settings.issuesDiv).animate({'marginLeft':currentPositionIssues+widthIssue},duration:settings.issuesSpeed});
    $(settings.issuesDiv+' li.'+settings.issuesSelectedClass).removeClass(settings.issuesSelectedClass).prev().fadeTo(settings.issuesTransparencySpeed,duration:'settings.datesSpeed'});
    $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass);
    }
    }
    } else if(settings.orientation == 'vertical') {
    var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
    var currentIssueDate = currentPositionDates+heightDate;
    if(currentPositionIssues >= 0) {
    $(settings.issuesDiv).stop();
    $(settings.datesDiv+' li:first-child a').click();
    } else {
    if (!$(settings.issuesDiv).is(':animated')) {
    $(settings.issuesDiv).animate({'marginTop':currentPositionIssues+heightIssue},duration:'settings.datesSpeed'},duration:settings.issuesSpeed});
    $(settings.datesDiv+' a.'+settings.datesSelectedClass).removeClass(settings.datesSelectedClass).parent().prev().children().addClass(settings.datesSelectedClass);
    }
    }
    }
    // prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows
    if(howManyDates == 1) {
    $(settings.prevButton+','+settings.prevButton).fadeIn('slow');
    }
    }
    });
    // keyboard navigation,added since 0.9.1
    if(settings.arrowKeys=='true') {
    if(settings.orientation=='horizontal') {
    $(document).keydown(function(event){
    if (event.keyCode == 39) {
    $(settings.nextButton).click();
    }
    if (event.keyCode == 37) {
    $(settings.prevButton).click();
    }
    });
    } else if(settings.orientation=='vertical') {
    $(document).keydown(function(event){
    if (event.keyCode == 40) {
    $(settings.nextButton).click();
    }
    if (event.keyCode == 38) {
    $(settings.prevButton).click();
    }
    });
    }
    }
    // default position startAt,added since 0.9.3
    $(settings.datesDiv+' li').eq(settings.startAt-1).find('a').trigger('click');
    // autoPlay,added since 0.9.4
    if(settings.autoPlay == 'true') {
    setInterval("autoPlay()",settings.autoPlayPause);
    }
    });
    };

    // autoPlay,added since 0.9.4
    function autoPlay(){
    var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass);
    if(settings.autoPlayDirection == 'forward') {
    if(currentDate.parent().is('li:last-child')) {
    $(settings.datesDiv+' li:first-child').find('a').trigger('click');
    } else {
    currentDate.parent().next().find('a').trigger('click');
    }
    } else if(settings.autoPlayDirection == 'backward') {
    if(currentDate.parent().is('li:first-child')) {
    $(settings.datesDiv+' li:last-child').find('a').trigger('click');
    } else {
    currentDate.parent().prev().find('a').trigger('click');
    }
    }
    }

    2、CSS文件

    a {
    color: #007bc4 /#424242/;
    text-decoration: none;
    }

    a:hover {
    text-decoration: underline;
    }

    ol,ul {
    list-style: none;
    }

    table {
    border-collapse: collapse;
    border-spacing: 0;
    }

    body {
    height: 100%;
    font: 12px/18px Tahoma,"\5b8b\4f53",sans-serif;
    color: #51555C;
    background: #D3D3D3;
    }

    img {
    border: none;
    }

    main {

    width: 550px;
    min-height: 400px;
    margin: 30px auto 0 auto;
    background: #fff;
    -moz-border-radius: 12px;
    -khtml-border-radius: 12px;
    -webkit-border-radius: 12px;
    border-radius: 12px;
    margin-left:5px;
    }

    h2.top_title {
    margin: 4px 20px;
    padding-top: 15px;
    padding-left: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #d3d3d3;
    font-size: 18px;
    color: #a84c10;
    background: url(../images/arrL.gif) no-repeat 2px 14px;
    }

    3、HTML代码

    <Meta charset="utf-8"> 横向时间轴

    猜你在找的jQuery相关文章