原生js实现tab选项卡

2017-11-20  本文已影响0人  别让我一个人醉_1fa7
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .tab li{float:left;width:50px;height:20px;list-style: none;}
        .tab:after{content: '';display:block;clear:both;}
        .content li{width:200px;height:200px;border:solid 1px red;position:absolute;display: none;}
        .content .current{display:block;}
        .tab .active{background-color: red;}
    </style>
</head>
<body>
<div>
    <ul class="tab">
        <li class="active">选项一</li>
        <li>选项二</li>
        <li>选项三</li>
        <li>选项四</li>
    </ul>
    <ul class="content">
        <li class="current">内容一</li>
        <li>内容二</li>
        <li>内容三</li>
        <li>内容四</li>
    </ul>
</div>
<script type="text/javascript">
    var tab = document.getElementsByClassName('tab')[0]
    var tabCart = tab.getElementsByTagName('li')
    var content = document.getElementsByClassName('content')[0]
    var contentCart = content.getElementsByTagName('li')
    tab.addEventListener('click',function(e){
        console.log(tabCart.length)
        var index = '1'
        // 找到点击项的索引值
        for(var i=0;i<tabCart.length;i++){
            if(e.target==tabCart[i]){
                index = i
            }
        }
        // 给点击项加上active类
        tabCart[index].classList.add("active")
        // 去除其他选项上的active类
        for(var i=0;i<tabCart.length;i++){
            if(tabCart[i] != tabCart[index]){
                tabCart[i].classList.remove("active")
                console.log(1)
            }
        }
            // 给点击项相应的内容加上current类
        contentCart[index].classList.add("current")
        // 去除其他选项上的current类
        for(var i=0;i<contentCart.length;i++){
            if(contentCart[i] != contentCart[index]){
                contentCart[i].classList.remove("current")
                
            }
        }
    })
</script>
</body>

</html>
上一篇下一篇

猜你喜欢

热点阅读