Javascript——tab切换案例实现

先写个通用的css模板

   <style>
        *{
            margin: 0;
            padding: 0;
        }
        ul{
            list-style-type: none;
        }
        .box{
            width: 400px;
            height: 300px;
            border: 1px solid #ccc;
            margin: 100px auto;
            overflow: hidden;
        }
        .hd{
            height: 45px;
        }
        .hd span{
            display: inline-block;
            width: 90px;
            background-color: pink;
            line-height: 45px;
            text-align: center;
            cursor: pointer;
        }
        .hd span.current{
            background-color: purple;
        }
        .bd li{
            height: 255px;
            background-color: purple;
            display: none;
        }
        .bd li.current{
            display: block;
        }
    </style>

body部分

<body>
<div class="box" id="box">
    <div class="hd">
        <span class="current">体育</span>
        <span>娱乐</span>
        <span>新闻</span>
        <span>综合</span>
    </div>
    <div class="bd">
        <ul>
            <li class="current">我是体育模块</li>
            <li>我是娱乐模块</li>
            <li>我是新闻模块</li>
            <li>我是综合模块</li>
        </ul>
    </div>
</div>
</body>

JS部分排他功能

<script src="common.js"></script>
<script>
    //获取最外面的div
    var box=my$("box");
    //获取的是里面的第一个div
    var hd=box.getElementsByTagName("div")[0];
    //获取的是里面的第二个div
    var bd=box.getElementsByTagName("div")[1];
    //获取所有li标签
    var list=bd.getElementsByTagName("li");

    //获取所有的span标签
    var spans=hd.getElementsByTagName("span");
    //循环遍历方式,添加点击事件
    for(var i=0; i<spans.length; i++){
        //在点击之前就把索引保存在span标签中
        spans[i].setAttribute("indexabc", i);
        spans[i].onclick=function(){
            //第一件事,所有span的类样式全部移除
            for(var j=0; j<spans.length; j++){
                spans[j].removeAttribute("class");
            }
            //第二件事,当前被点击的span应用类样式
            this.className="current";
            //span被点击的时候获取存储的索引值
            var num=this.getAttribute("indexabc");
            //获取所有li标签,每个li标签先全部隐藏
            for(var k=0; k<list.length; k++){
                list[k].removeAttribute("class");
            }
            //当前被点击的span对应的li标签显示
            list[num].className="current";
        };
    }
</script>

猜你喜欢

转载自blog.csdn.net/mintsolace/article/details/94653015