美文网首页
js实现tab栏点击切换

js实现tab栏点击切换

作者: 圆滚滚大煤球 | 来源:发表于2021-07-06 11:21 被阅读0次

核心原理:
1、给按钮li用for循环添加自定义属性,i是自定义的值,成功添加索引号;
2、当鼠标点击li,循环让所有兄弟去掉类,被点击的li则添加类;
3、把当前点击的li的自定义属性值(索引号)存为变量;
4、循环item内容区域,其他的display都隐藏,和li相同索引号的留下来;

HTML:

    <div class="tabs">
        <ul class="nav">
            <li class="current">电脑</li>
            <li>手机</li>
            <li>空调</li>
        </ul>
        <ol>
            <a href="javascript:;" style="display: block;">电脑模块</a>
            <a href="javascript:;">手机模块</a>
            <a href="javascript:;">空调模块</a>
        </ol>
    </div>

CSS:

<style>
    * {
        padding: 0;
        margin: 0;
        text-decoration: none;
        list-style: none;
    }
    a {
        font-size: 18px;
        color: #333;
    }
    .nav {
        width: 1000px;
        height: 40px;
        line-height: 40px;
        text-align: center;
        background-color: #eee;
 
    }
    .nav>li {
        float: left;
        width: 100px;
        margin-right:  20px;
        font-size: 20px;
        cursor: pointer;
    }
    .current {
        background-color: crimson;
        color: #fff;
    }
    ol>a {
        display: none;
    }
</style>

JS:

<script>
    // 获取元素
    var tabs = document.querySelector('.tabs');
    var nav = document.querySelector('.nav');
    var ol = document.querySelector('ol');
    var lis = document.querySelectorAll('li');
    var as = document.querySelectorAll('a');


    // 1、循环给li添加自定义属性,值是i,为了获取到索引号
    for(i = 0;i < lis.length;i++) {
        lis[i].setAttribute('index',i);

        // 只要是对一个组做一个事件,就要循环,所以点击lis事件也要在当前循环里面写;
        // 当点击lis[i],全部删除类,自己添加类;
        lis[i].onclick = function() {
            for(i = 0;i < lis.length;i++) {
                lis[i].className = '';
            }
            this.className = 'current';
            // 把当前点击的自定义属性值给存为变量(获取索引号)
            var index = this.getAttribute('index');
            // 再次循环把a模块内容全部隐藏,li对应的模块留下
            for(i = 0;i < as.length; i++) {
                as[i].style.display = 'none';
            }
            as[index].style.display = 'block';
        }
    }
</script>

相关文章

网友评论

      本文标题:js实现tab栏点击切换

      本文链接:https://www.haomeiwen.com/subject/otawultx.html