JavaScript 使用原生js,实现tab栏切换

Posted 路宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 使用原生js,实现tab栏切换相关的知识,希望对你有一定的参考价值。

代码如下,具体注释已经在代码中给出:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .tab 
            width: 80%;
            height: 400px;
            margin: 100px auto;
        
        
        .tab_list 
            border: 2px solid #C0C0C0;
            width: 100%;
            height: 53px;
            background-color: #eef1ee;
        
        
        .tab_list ul 
            width: 100%;
            margin: 0;
            padding: 0;
        
        
        .tab_list ul li 
            cursor: pointer;
            height: 53px;
            float: left;
            list-style: none;
            line-height: 53px;
            color: black;
            padding: 0 20px;
        
        
        .tab_list .current 
            background-color: #d6271f;
            color: #fff;
        
        
        .tab_con 
            width: 100%;
        
        
        .item 
            display: none;
        
    </style>
</head>

<body>
    <div class="tab">
        <div class="tab_list">
            <ul>
                <li class="current">商品介绍</li>
                <li>规格与包装</li>
                <li>售后保障</li>
                <li>商品评价(5000)</li>
                <li>手机社区</li>
            </ul>
        </div>
        <div class="tab_con">
            <div class="item" style="display: block;">
                商品介绍模块内容
            </div>
            <div class="item">
                规格与包装模块内容
            </div>
            <div class="item">
                售后保障模块内容
            </div>
            <div class="item">
                商品评价(5000)模块内容
            </div>
            <div class="item">
                手机社区模块内容
            </div>
        </div>
    </div>
    <script>
        //1.点击某一个,当前这一个底色是红色,其余不变(排他思想)用修改类名的方式
        //获取元素
        var tab_list = document.querySelector('.tab_list');
        var lis = tab_list.querySelectorAll('li');
        var items = document.querySelectorAll('.item');
        //for循环绑定点击事件
        for (var i = 0; i < lis.length; i++) 
            //开始给5个小li 设置索引号
            lis[i].setAttribute('index', i);
            lis[i].onclick = function() 
                //干掉所有人,其余的li清除class这个类
                for (var i = 0; i < lis.length; i++) 
                    lis[i].className = '';
                
                //留下我自己
                this.className = 'current';
                //2.下面的显示内容模块
                var index = this.getAttribute('index');
                console.log(index);
                //先让所有的item这些div隐藏
                for (var i = 0; i < items.length; i++) 
                    items[i].style.display = 'none';
                
                //留下我自己的,让对应选中的item,显示出来就可以了 
                items[index].style.display = 'block';

            
        
    </script>
</body>

</html>

具体效果如图所示:

以上是关于JavaScript 使用原生js,实现tab栏切换的主要内容,如果未能解决你的问题,请参考以下文章

标签页(tab)切换的原生js,jquery和bootstrap实现

原生JavaScript实现切换tab显示不同的样式

原生JavaScript实现切换tab显示不同的样式

js原生实现tab标签切换(可滑动)

原生JS实现tab切换--web前端开发

原生js开发tab选项卡之闭包