zoukankan      html  css  js  c++  java
  • js插件编程-tab框

    JS代码

    (function (w) {
        //tab对象
        function Tab(config) {
            //定义变量,防止变量污染
            this.tabMenus=null;
            this.tabMains=null;
            if(config){
                this._init(config);
            }
        }
        //为原型添加属性,防止内存重复创建
        Tab.prototype={
            _init:function (config) {
                //初始化元素
                this.initElements(config);
                this.initEvent();
                if(config.auto){
                    this.autoPlay();
                }
            },
            initElements:function (config) {
                var tabMenu=document.getElementById(config.tabMenu);
                var tabMain=document.getElementById(config.tabMain);
    
                this.tabMenus=tabMenu.children;
                this.tabMains=tabMain.children;
            },
            initEvent:function () {
                for(var i=0;i<this.tabMenus.length;i++){
                    var li=this.tabMenus[i];
                    li.index=i;
                    //定义this变量存储,闭包环境可以调用此变量
                    var that=this;
                    li.onclick=function () {
                        that.change(this);
                    }
                }
            },
            change:function (tabMenu) {
                for(var i=0;i<this.tabMenus.length;i++){
                    this.tabMenus[i].className="";
                    this.tabMains[i].className="main";
                }
                tabMenu.className="active";
                this.tabMains[tabMenu.index].className+=" select";
            },
            autoPlay:function () {
                var index=0;
                var that=this;
                setInterval(function () {
                    index++;
                    if(index>=that.tabMenus.length){
                        index=0;
                    }
                    that.change(that.tabMenus[index]);
                },2000);
            }
        }
        //将插件暴露给windows
        w.Tab=Tab;
    })(window)

    HTML代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" type="text/css" href="tab.css">
    </head>
    <body>
        <div class="wrapper">
            <ul class="tab" id="menu">
                <li class="active">国际大牌<span>◆</span></li>
                <li>国妆名牌<span>◆</span></li>
                <li>清洁用品<span>◆</span></li>
                <li>男士精品</li>
            </ul>
            <div class="products" id="main">
                <div class="main select"><a href="#"><img src="imgs/guojidapai.jpg"></a></div>
                <div class="main"><a href="#"><img src="imgs/guozhuangmingpin.jpg"></a></div>
                <div class="main"><a href="#"><img src="imgs/qingjieyongpin.jpg"></a></div>
                <div class="main"><a href="#"><img src="imgs/nanshijingpin.jpg"></a></div>
            </div>
        </div>
    </body>
    <script type="text/javascript" src="tab.js"></script>
    <script>
        var tb=new Tab({
            tabMenu:"menu",
            tabMain:"main",
            auto:true
        });
    </script>
    </html>

    css代码

     html,body,ul,li {
         margin: 0;
         padding: 0;
     }
     ul{
         list-style: none;
     }
     .wrapper {
         margin: 0 auto;
          1000px;
         height: 475px;
         margin-top: 100px;
     }
     .wrapper .tab {
          320px;
         height: 36px;
         border: 1px solid #ddd;
         border-bottom: 0;
     }
     .wrapper .tab li{
         float:left;
          80px;
         height: 34px;
         line-height: 34px;
         cursor: pointer;
         text-align: center;
         border-top: 4px solid #fff;
         position: relative;
     }
     .wrapper .tab .active{
         border-top: 4px solid red;
     }
     .wrapper .tab span{
          1px;
         height: 14px;
         background-color: #ddd;
         position: absolute;
         right:0px;
         top:10px;
         overflow: hidden;
     }
     .wrapper .products{
          1002px;
         height: 476px;
         border:1px solid #ddd;
     }
    
     .wrapper .products .main{
         float: left;
         display: none;
     }
     .wrapper .products .select{
         display: block;
     }
  • 相关阅读:
    IQuerable与IEnumable的区别
    idea2021.1新功能
    intellij idea2021快捷键大全
    解决报错:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
    spring boot中不能识别RestController的原因
    Maven的安装与配置
    关于window10安装jdk,配置环境变量,javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题。
    记录日常工作经验,技术解决问题分享格式
    Brt课程设计day14
    Brt课程设计day13
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/8432460.html
Copyright © 2011-2022 走看看