标签栏切换效果 JS

标签栏切换效果 JS

要求:class为tab-box的元素用于实现标签栏的外边框,,分别实现标签栏的标签部分和内容部分.

html

<div class="tab-box">
    <div class="tab-head-div current">标签一</div>
    <div class="tab-head-div">标签二</div>
    <div class="tab-head-div">标签三</div>
    <div class="tab-head-div">标签四</div>
</div>
<div class="tab-body">
    <div class="tab-body-div current"> 1</div>
    <div class="tab-body-div"> 2</div>
    <div class="tab-body-div"> 3</div>
    <div class="tab-body-div"> 4</div>
</div>

JS

<script>
    var tabs = document.getElementsByClassName('tab-head-div');
    //获取标签栏里的所有标签部分
    var divs = document.getElementsByClassName('tab-body-div');
    //获取内容对象
    for (let i = 0; i < tabs.length; i++) {
        //遍历标签部分的元素对象
        tabs[i].onmouseover = function () {
            //为标签元素对象添加鼠标划过的事件
            for (let i = 0; i < divs.length; i++) {
                //遍历标签栏的内容元素对象
                if (tabs[i] === this) {// 显示当前鼠标滑过的li元素
                    console.log(tabs[i]);
                    divs[i].classList.add('current');
                    tabs[i].classList.add('current');
                } else {
                    //隐藏li元素
                    divs[i].classList.remove('current');
                    tabs[i].classList.remove('current');
                }
            }
        };
    }
</script>
style
<style>
    .tab-box{
        width: 410px;
        height: 50px;
        background: green;
    }
    .tab-box .tab-head-div{
        width: 100px;
        height: 50px;
        background: gray;
        float: left;
        margin: 1px;
    }
    .tab-box .current{
        width: 100px;
        height: 50px;
        background: coral;
    }

    .tab-body .tab-body-div{
        background: gray;
        float: left;
        margin: 1px;
    }
    .tab-body .current{
        background: coral;
    }
    .tab-body .current{
        display: block;
    }
</style>

 



posted @ 2023-07-10 19:03  三只坚果  阅读(225)  评论(0编辑  收藏  举报