选项卡功能 js、jquery

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容