标签栏切换效果 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 @   三只坚果  阅读(281)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示

目录导航