• jquery封装的时间轴


    概述

    很多时候,都会用到类似于时间轴的东西,鉴于网络资源没有那么顺手,就想着自己搞一个,在此将源码贴出来。


    效果


    代码

    样式文件style.css

    .timeline{
        position: absolute;
        z-index: 5000;
        font-size: 12px;
        border: 1px solid #ccc;
        background: whitesmoke;
        background: -webkit-linear-gradient(top, whitesmoke, #ddd);
        background: -ms-linear-gradient(top, whitesmoke, #ddd);
        background: -moz-linear-gradient(top, whitesmoke, #ddd);
        border-radius: 4px 0 4px 0;
        box-shadow: 0px 0px 10px rgba(150,150,150,0.5);
    }
    .timeline ul.ulvec{
        margin-left: 10px;
        list-style: none;
        background: url("dot.gif") 0px 0px repeat-y;
        padding-right: 10px;
    }
    .timeline ul li.livec{
        margin-left: -43px;
        padding: 0px 0px 0px 12px;
        background: url("biggerdot.png") 0px 50% no-repeat;
        cursor: pointer;
    }
    .timeline ul.ulhor{
        margin: 0px;
        padding: 5px 10px;
        list-style: none;
        background: url("dot.gif") 0px 5px repeat-x;
    }
    .timeline ul li.lihor{
        display: inline-block;
        margin: 0px;
        padding: 10px 0px 0px 0px;
        margin-top: -3px;
        background: url("biggerdot.png") 50% 0px no-repeat;
        cursor: pointer;
    }
    .timeline ul li span{
        display: block;
        padding: 4px 15px;
        border: 1px solid transparent;
    }
    .timeline ul li.active span{
        color: #f2f2f2;
        box-shadow: inset 0px 0px 30px #333333;
        border-radius: 4px;
        border: 1px solid #ffffff;
        background: #666;
    }


    控件代码 jquery.custom.timeline.js

    (function($){
        $.fn.TimeLine = function(options){
            var defaults = {
                data:null,
                vertical:false
            };
    
            var options = $.extend(defaults,options);
            var _data = options.data;
            var _vertical = options.vertical;
            var _showDiv = $(this).addClass("timeline");
            var _ul = $("<ul />").appendTo(_showDiv);
            if(_vertical){
                _ul.addClass("ulvec");
            }
            else{
                _ul.addClass("ulhor");
            }
            for(var i= 0,dl=_data.length;i<dl;i++){
                var _li = $("<li />").appendTo(_ul);
                if(_vertical){
                    _li.addClass("livec");
                }
                else{
                    _li.addClass("lihor");
                }
                var _span = $("<span />").attr("value",_data[i].value).html(_data[i].label).appendTo(_li);
                _span.on("click",function(){
                    var _value = this.getAttribute("value");
                    active(_value);
                });
            }
            function active(value){
                $("li").removeClass("active");
                var _spans = $("ul").find("span");
                for(var i= 0,dl=_spans.length;i<dl;i++){
                    var _span = _spans[i];
                    if(_span.getAttribute("value")===value){
                        var _li = $(_span.parentNode);
                        _li.addClass("active");
                    }
                }
            }
            this.active = active;
            return this;
        }
    })(jQuery);

    调用实现

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="style.css" type="text/css">
        <script src="http://localhost/jquery/jquery-1.8.3.js"></script>
        <script src="jquery.custom.timeline.js"></script>
        <script>
            var data = [{"label":"2011年","value":"2011"},
                {"label":"2012年","value":"2012"},
                {"label":"2013年","value":"2013"}
            ];
            $(function(){
                var timelinehor = $("#timelinehor").TimeLine({
                    data:data,
                    vertical:false
                });
                timelinehor.active(data[0].value);
                var timelinevec = $("#timelinevec").TimeLine({
                    data:data,
                    vertical:true
                });
                timelinevec.active(data[0].value);
            });
        </script>
    </head>
    <body>
    <div id="timelinehor"></div><br><br><br>
    <div id="timelinevec"></div>
    </body>
    </html>





  • 相关阅读:
    解析ASP.NET Mvc开发之EF延迟加载 分类: ASP.NET 2014-01-04 01:29 4017人阅读 评论(1) 收藏
    解析ASP.NET Mvc开发之查询数据实例 分类: ASP.NET 2014-01-02 01:27 5788人阅读 评论(3) 收藏
    解析ASP.NET Mvc开发之查询数据实例
    从明源动力到创新工场这一路走来
    从明源动力到创新工场这一路走来 分类: 程序人生 2013-12-29 07:37 2532人阅读 评论(2) 收藏
    解析ASP.NET WebForm和Mvc开发的区别 分类: ASP.NET 2013-12-29 01:59 11738人阅读 评论(5) 收藏
    解析ASP.NET WebForm和Mvc开发的区别
    MySQL--索引
    MySQL--存储过程
    MySQL--自定义函数
  • 原文地址:https://www.cnblogs.com/lzugis/p/6539828.html
Copyright © 2020-2023  润新知