zoukankan      html  css  js  c++  java
  • tab切换(可切换可不切换) [ 平均分布 + 自适应字数分布 ]

     /*初始化 | begin*/
    html{font-size: 10px;line-height: 1em;}
    body,ul{margin: 0;padding:0;}
    ul,li{list-style: none;}
    /*初始化 | end*/
    .move{-webkit-transition: all 0.3s ease 0;-webkit-transition: all 0.3s ease 0;-moz-transition: all 0.3s ease 0;-o-transition: all 0.3s ease 0;transition: all 0.3s ease 0;}
    .tabar{display: table;table-layout: fixed;width: 100%;border-bottom: 1px solid #e8e8e8;overflow: hidden;}
    .tabar>li{display: table-cell;font-size: 1.4em;line-height: 1.2em;padding:10px 2px;text-align: center;position: relative;cursor:pointer;vertical-align: middle;}
    .tabar>li:after{content:"";height: 15px;width: 1px;background-color: #e8e8e8;position: absolute;left: -1px;top: 50%;margin-top: -8px;}
    .w-tabar{width:100%;position: relative;margin-bottom: 21px;}
    .w-tabar i{width:50%;height: 3px;display: block;position: absolute;bottom: 0;background: #57d0ff;}
    
    /*第二种*/
    .tabar_ato{width: auto;}
    .tabar_ato>li{padding-left:20px;padding-right:20px;white-space: nowrap;}
    <div class="aaa1">
           <div data-tabar="0">XXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="1">XXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="2">XXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="3">XXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="4">XXXXXXXXXXXXXXXXXXXX</div>
       </div>
       <div class="aaa2">
           <div data-tabar="0">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="1">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="2">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="3">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>
           <div data-tabar="4">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div>
       </div>
    
    $(function(){
            $(".aaa1").tabar({"arr":["我1","标题2","我是ghkhkghkjghj题3","是标题4"],"style":"auto","isOn":true});
            $(".aaa2").tabar({"arr":["我1","标题2","我是gh","是标题4"],"isOn":true});
        })
    /*
     * @author:Cheryl
     * @made:2015-12-31
     */
    jQuery.extend( jQuery.easing,
    {
      easeOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
      },
    });
    
    (function (window, $, undefined) {
        function tabDiv(dom,eqLi){
            dom.children('div[data-tabar='+eqLi+']').fadeIn(500).siblings('div[data-tabar]').fadeOut(0);
        }
        $.tabarClass={
            arr:["标题1","标题2"],
            style:"default",//auto
            odf:{
                class:"tabar",
            },
            oato:{
                class:"tabar tabar_ato",
            },
            isOn:true,
        }
        $.extend($.fn, {
            tabar: function (option) {
                if ($(this)[0] == null || $(this)[0] == undefined) { return; };
                //进行初始化
                var options=$.extend($.tabarClass,option||{});
                var dom=$(this);
                //添加元素
                var lenLi=options.arr.length;
                var strHtml="";
                for (var i = 0; i < lenLi; i++) {
                    strHtml+="<li>"+options.arr[i]+"</li>"
                }
                dom.find('.w-tabar').remove();
                dom.prepend("<div class='w-tabar'><ul class='"+(option.style==="auto"?$.tabarClass.oato.class:$.tabarClass.odf.class)+"'>"+strHtml+"</ul><i class='move'></i></div>")
                //隐藏元素
                if (option.isOn) {
                    dom.find('div[data-tabar]').eq(0).css("display","block").siblings('div[data-tabar]').css("display","none");
                }else{}//不需要进行切换
    
                //定义方法
                var bar=dom.find('.w-tabar');      
                var barUL=bar.find('.tabar');
                var barLi=barUL.children('li');
                //初始化 i 长度定义
                var wdhLi=barLi.eq(0).innerWidth();
                dom.find('i.move').css("width",wdhLi+"px");
    
                //定义方法
                if (option.style==="auto") {
                    var arrLi=[];
                    var leftLi=[0]
                    var sNum=0;
                    for (var i = 0; i < lenLi; i++) {
                        sNum+=arrLi[i]=barLi.eq(i).innerWidth();
                        leftLi[i+1]=sNum;
                    }
                    dom.find('i.move').css("width",wdhLi+"px");
                    //定义方法
                    barLi.click(function(event) {
                        var eqLi=$(this).index();
                        bar.find('i.move').stop().animate({"left":leftLi[eqLi]+"px","width":arrLi[eqLi]+"px"}, 300,"easeOutBack");
                        if (option.isOn) {tabDiv(dom,eqLi);}else{}
                    });
                }else{
                    wdhLi=100/lenLi;
                    barLi.click(function(event) {
                        var eqLi=$(this).index();
                        bar.find('i.move').stop().animate({"left":eqLi*wdhLi+"%"}, 300,"easeOutBack");
                        // dom.children('div[data-tabar='+eqLi+']').fadeIn(500).siblings('div[data-tabar]').fadeOut(0);
                        if (option.isOn) {tabDiv(dom,eqLi);}else{}
                    });
                }
            },
        })
    })(window, jQuery);
  • 相关阅读:
    Mysql配置文件模板
    shell命令记录
    SuSE Linux Enterprise Server
    安装jdk1.8
    云南-第一个应用节点-ssh登录-卡顿的问题
    Python重新安装pip
    Centos6.5修改镜像为国内的阿里云源
    supervisord.conf
    Pandas连接Mysql数据库
    Vim速查命令简版
  • 原文地址:https://www.cnblogs.com/caiCheryl/p/5527000.html
Copyright © 2011-2022 走看看