JavaScript实现Tab栏切换功能详解

作者:流萤

时间:2026-10-25

浏览:127

本文详细解析使用JavaScript实现Tab栏切换功能的完整流程。核心思路结合排他思想与自定义属性,通过点击事件控制样式与内容显隐。文章提供具体代码示例,帮助开发者快速掌握前端交互逻辑的实现方法。

文章目录

JavaScript实现Tab栏切换功能详解

本文分享使用JavaScript实现Tab栏切换的具体代码示例,供读者参考学习。

效果展示

最终效果展示如下:

JavaScript实现Tab栏切换功能详解

核心实现逻辑

实现逻辑分析:

首先,在点击各个Tab项时,需应用排他思想。即先移除所有列表项(li)的背景样式,随后为当前被点击的Tab添加特定的激活类名。

其次,上方的Tab导航与下方的显示内容需保持一一对应关系。为此,可利用自定义属性为每个Tab绑定一个索引值(index)。通过读取该索引,即可准确识别当前点击的是哪一个Tab项。

最后,再次运用排他思想处理内容区域。当点击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>tab切换栏的制作</title>
    <style>
 
        *{
            padding: 0;
            margin: 0;
        }
        .head{
            width: 1000px;
            height: 30px;
            background-color: pink;
            margin: 10px auto;
            
        }
        ul{
            width: 100%;
            height: 100%;
        }
        li {
            display: inline-block;
            width: 100px;
            height: 100%;
            list-style: none;
            line-height: 30px;
            text-align: center;
            cursor: pointer;
        }
        .bg {
            color: white;
            background-color: red;
        }
        .item {
            display: none;
        }
    </style>
</head>
<body>
    <div class="head">
        <ul>
            <li>商品详情</li>
            <li>商品详情</li>
            <li>商品详情</li>
            <li>商品详情</li>
            <li>商品详情5</li>
        </ul>
        <div class="detail">
            <div class="item">item1</div>
            <div class="item">item2</div>
            <div class="item">item3</div>
            <div class="item">item4</div>
            <div class="item">item5</div>
        </div>
        <script>
            var lis = document.querySelectorAll('li');
            // 鼠标经过时,li加入className,同时让其他li去掉该类。
            // 绑定事件
            var detail = document.querySelector('.detail');
            var items = detail.querySelectorAll('.item');
            for(var i=0;i<lis.length;i++){
                lis[i].setAttribute('index',i);
                var index;
                lis[i].onclick = function(){
                    for(var j=0;j<lis.length;j++){
                        lis[j].className='';
                        items[j].style.display = 'none';
                    }
                    this.className='bg';
                    index = this.getAttribute('index');
                    
                    items[index].style.display='block';
                }
 
            }

        </script>
    </div>
</body>
</html>

以上为本文的全部内容,希望能为各位的学习提供有益帮助,同时也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章