tab栏切换制作,点击导航栏切换内容html+css+js完整代码及详细解析

tab栏切换制作,点击导航栏切换内容

代码的详细解析:

  1. 首先定义了一个包含导航栏和内容区域的HTML结构。导航栏使用ul元素,每个导航项使用li元素。内容区域使用一个具有.main类名的div元素,其中包含多个具有.item类名的div元素。

  2. 使用CSS样式对导航栏和内容进行了样式设置。导航栏具有一个背景颜色,并且每个导航项平均分配宽度。当鼠标悬停在导航项上时,会改变背景颜色。内容区域的文本使用不同的字体和样式进行了显示。

  3. 在JavaScript代码中,首先使用document.querySelectorAll方法获取所有的导航项(lis)和内容项(items)。

  4. 使用setAttribute方法为每个导航项添加了一个自定义属性index,并设置为当前项的索引。

  5. 为每个导航项添加了一个点击事件监听器(onclick)。当导航项被点击时,执行相应的函数。

  6. 在点击事件处理函数中,首先移除所有导航项的类名,然后将当前点击的导航项添加类名color,以显示选中状态。

  7. 获取点击导航项的索引,通过设置对应索引的内容项的style.display属性为block,以显示对应的内容。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
    
            ul {
                background-color: aquamarine;
                width: 80%;
                height: 8vmin;
                margin: 10vmin auto;
                /* display: table; */
                display: flex;
            }
    
            li {
                /* display: table-cell; */
                line-height: 8vmin;
                text-align: center;
                display: inline-block;
                width: 20%;
            }
    
            li:hover {
                background-color: orangered;
            }
    
            .color {
                background-color: red;
            }
            .item{
                /* font-family: "华文新魏"; */
                font-size: 4em;
                font-family: "华文行楷"
            }
            .small{
                font-family: "华文行楷";
                font-size: 4em;
            }
            .main div{
                width: 80%;
                height: 100px;
                margin: 0 auto;
            }
        </style>
    </head>
    
    <body>
        <ul>
            <li class="color">企业简介</li>
            <li>企业动态</li>
            <li>产品展示</li>
            <li>成功案例</li>
            <li>行业资讯</li>
        </ul>
        <div class="main">
            <div class="item" style="display: block;">
                鲜衣怒马少年郎,对镜自怜夜不眠
            </div>
            <div class="item" style="display: none;">
                我与春风携过客,你携秋水揽星河
            </div>
            <div class="item" style="display: none;">
                远赴人间惊鸿宴,一睹人间盛世颜
            </div>
            <div class="item" style="display: none;">
                少年曾许凌云志,取得人间第一流
            </div>
            <div class="item" style="display: none;">
                别人笑我太疯颠,我笑他人看不穿
            </div>
            <!-- <div class="small">
                青天有月来几时,我今停杯一问之
            </div> -->
        </div>
        <script>
            var lis = document.querySelectorAll('li')
            var items = document.querySelectorAll('.item')
            for (i = 0; i < lis.length; i++) {
                lis[i].setAttribute('index', i)
                lis[i].onclick = function () {
                    for (var i = 0; i < lis.length; i++) {
                        lis[i].className = ''
                    }
                    this.className = 'color'
                    var index = this.getAttribute('index')
                    for (var i = 0; i < items.length; i++) {
                        items[i].style.display = 'none'
                    }
                    items[index].style.display = 'block'
                }
            }
        </script>
    </body>
    
    </html>
    

    效果图在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 11
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以为您提供一些关于Tab切换的示例代码,帮助您实现该功能。 HTML布局示例代码: ```html <div class="tab-container"> <ul class="tab-nav"> <li class="active"><a href="#tab1">Tab 1</a></li> <li><a href="#tab2">Tab 2</a></li> <li><a href="#tab3">Tab 3</a></li> </ul> <div class="tab-content"> <div id="tab1" class="active"> Content for Tab 1 </div> <div id="tab2"> Content for Tab 2 </div> <div id="tab3"> Content for Tab 3 </div> </div> </div> ``` CSS样式示例代码: ```css .tab-container { border: 1px solid #ccc; margin: 20px; } .tab-nav { list-style: none; margin: 0; padding: 0; display: flex; border-bottom: 1px solid #ccc; } .tab-nav li { margin-right: 20px; padding-bottom: 10px; } .tab-nav li.active a { color: #333; border-bottom: 2px solid #333; } .tab-content div { display: none; padding: 20px; } .tab-content div.active { display: block; } ``` JavaScript代码示例: ```javascript const tabNav = document.querySelector('.tab-nav'); const tabContent = document.querySelector('.tab-content'); tabNav.addEventListener('click', (event) => { event.preventDefault(); if (event.target.tagName === 'A') { const href = event.target.getAttribute('href'); const tab = document.querySelector(href); tabContent.querySelector('.active').classList.remove('active'); tabNav.querySelector('.active').classList.remove('active'); tab.classList.add('active'); event.target.parentNode.classList.add('active'); } }); ``` 上述代码实现了一个简单的Tab切换功能。您可以根据具体需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值