美文网首页
选项卡功能 js、jquery

选项卡功能 js、jquery

作者: 一名有马甲线的程序媛 | 来源:发表于2018-05-07 15:52 被阅读14次

    jquery:

    法一:

    思路:根据点击项是第几个元素(index),来控制第几个显示,代码如下:

    html:

    <div class="manuscript-detail">
        <div class="manuscript-detail-title">
            <a href="javascript:;" class="title-select title-selected">任务要求</a>
            <a href="javascript:;" class="title-select">附件下载</a>
            <a href="javascript:;" class="title-select">提交样板</a>
            <a href="javascript:;" class="title-select">推手稿件</a>
        </div>
        <div class="manuscript-detail-text detail-selected">
            0
        </div>
        <div class="manuscript-detail-text">
            1
        </div>
        <div class="manuscript-detail-text">
            2
        </div>
        <div class="manuscript-detail-text">
            3
        </div>
    </div>
    

    js:

    <script>
    $(".manuscript-detail-title .title-select").click(function(){
        $(this).addClass("title-selected").siblings().removeClass("title-selected");
        var selectNum = $(this).index();
        $(".manuscript-detail-text").eq(selectNum).addClass("detail-selected").siblings().removeClass("detail-selected");
    })
    </script>
    

    css:

    <style>
        .manuscript-detail .manuscript-detail-title{ width:850px; height:40px; line-height: 40px; border-bottom: 1px solid #eee; padding-left: 15px }
        .manuscript-detail .manuscript-detail-title .title-select{ font-size: 14px; color:#666; margin-right: 40px }
        .manuscript-detail .manuscript-detail-title .title-selected{ color:#ff8800; }
        .manuscript-detail .manuscript-detail-text{ display: none }
        .manuscript-detail .detail-selected{ display: block; }
    </style>
    

    点击下载法一demo


    法二:

    思路:用id控制哪项显示/隐藏,代码如下:

    html:

    <div id="tabbox">
        <ul class="select1">
           <li><a tab="tab1">导航菜单</a></li>
           <li><a tab="tab2">焦点幻灯片</a></li>
           <li><a tab="tab3">广告代码</a></li>
           <li><a tab="tab4">网页特效</a></li>
           <li><a tab="tab5">网页特效</a></li>
        </ul>
        <ul class="select2box">
            <li id="tab1" class="select2">
               <p>111</p>
            </li>
                
            <li id="tab2" class="select2">
                <p>222</p>
            </li>
        
            <li id="tab3" class="select2">
                <p>333</p>
            </li>
        
            <li id="tab4" class="select2">
                <p>444</p>
            </li>
    
            <li id="tab5" class="select2">
                <p>555</p>
            </li>
        </ul>
    </div>
    

    js:

    <script type="text/javascript">
    $(document).ready(function() {
        jQuery.jqtab = function(tabtit,tabcon) {
            $(tabcon).hide();
            $(tabtit+" li:first").addClass("show").show();
            $(tabcon+":first").show();
            $(tabtit+" li").click(function() {
                $(tabtit+" li").removeClass("show");
                $(this).addClass("show");
                $(tabcon).hide();
                var activeTab = $(this).find("a").attr("tab");
                $("#"+activeTab).fadeIn();
                return false;
            });
        };
        /*调用方法如下:*/
        $.jqtab(".select1",".select2");
    });
    </script>
    

    css:

    <style type="text/css">
    body,ul,li{margin: 0;padding: 0;font: 12px normal "宋体", Arial, Helvetica, sans-serif;list-style: none;}
    a{text-decoration: none;color: #000;font-size: 14px;}
    
    #tabbox{ width:600px; overflow:hidden; margin:0 auto;}
    .select2box{border: 1px solid #999;border-top: none;}
    .select2{ display:none;}
    
    .select1{height: 32px;border-bottom:1px solid #999;border-left: 1px solid #999;width: 100%;}
    .select1 li{height:31px;line-height:31px;float:left;border:1px solid #999;border-left:none;margin-bottom: -1px;background: #e0e0e0;overflow: hidden;position: relative;}
    .select1 li a {display: block;padding: 0 20px;border: 1px solid #fff;outline: none;}
    .select1 li a:hover {background: #ccc;}    
    .select1 .show,.select1 .show a:hover{background: #fff;border-bottom: 1px solid #fff;}
    
    .select2 {padding:12px;font-size: 14px; line-height:175%;}
    </style>
    

    点击下载法二demo


    js:

    思路:用闭包函数绑定两个ul之间中对应的li
    html:

    <div id="container">
        <ul id="option">
            <li class="active">全部订单</li>
            <li>已发货订单</li>
            <li>完成订单</li>
            <li>失效订单</li>
        </ul>
        <ul id="card">
            <li class="active"><input type="text" value="111"><input type="text" value="111"></li>
            <li><input type="text" value="222"><input type="text" value="222"></li>
            <li><input type="text" value="333"><input type="text" value="333"></li>
            <li><input type="text" value="444"><input type="text" value="444"></li>
        </ul>
    </div>
    

    js:

    <script>
        //获取 所有的选项控制
        var optionList = document.getElementById('option').getElementsByTagName('li');
        //获取所有 卡
        var cardList = document.getElementById('card').getElementsByTagName('li');
        
        //绑定单击事件
        for (var i = 0; i < optionList.length; i++) {
            (function(i){
                optionList[i].onclick = function(){
                    for (var j = 0; j < optionList.length; j ++) {
                        optionList[j].className = "";
                    }
                    this.className = "active";
                    for (var j = 0; j < cardList.length; j ++) {
                        cardList[j].className = "";
                    }
                    cardList[i].className = "active";
                }
            })(i)
        }
    </script>
    

    css:

    <style>
        *{ margin:0; padding:0; }
        #container{ width:600px; margin:20px auto; }
        ul{ list-style:none; }
        #option{
            width:100%;
            height:38px;
            line-height:38px;
            border-left:1px solid #999;
            border-bottom:1px solid #999;
        }
        #option li{
            float:left;
            padding:0 20px;
            background-color:#f5f5f5;
            border-right:1px solid #999;
            border-top:1px solid #999;
            height:37px;
            cursor:pointer;
        }
        
        #option li.active{
            background-color:#fff;
            height:38px;
        }
        
        #card{
            border:1px solid #999;
            border-top:none;
        }
        #card li{
            padding:20px;
            height:400px;
            display:none;
        }
        #card li.active{
            display:block;
        }
    </style>
    

    点击下载 js demo

    茫茫人海中,你能有缘搜到我的简书,希望我的总结能对你有帮助~

    相关文章

      网友评论

          本文标题:选项卡功能 js、jquery

          本文链接:https://www.haomeiwen.com/subject/wpcvrftx.html