javaScript导航栏切换功能

如下直接给出HTML,CSS,等代码,不做过多解释,只看javaScript代码,主做笔记,如有不懂,留言我会解答

 * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .wrapper {
            width: 1000px;
            height: 475px;
            margin: 0 auto;
            margin-top: 100px;
        }

        .tab {
            border: 1px solid #ddd;
            border-bottom: 0;
            height: 36px;
            width: 320px;
        }

        .tab li {
            position: relative;
            float: left;
            width: 80px;
            height: 34px;
            line-height: 34px;
            text-align: center;
            cursor: pointer;
            border-top: 4px solid #fff;
        }

        .tab span {
            position: absolute;
            right: 0;
            top: 10px;
            background: #ddd;
            width: 1px;
            height: 14px;
            overflow: hidden;
        }

        .products {
            width: 1002px;
            border: 1px solid #ddd;
            height: 476px;
        }

        .products .main {
            float: left;
            display: none;
        }

        .products .main.active {
            display: block;
        }

        .tab li.active {
            border-color: red;
            border-bottom: 0;
        }
  <div class="wrapper">
        <ul class="tab">
            <li class="tab-item active">国际大牌<span>◆</span></li>
            <li class="tab-item">国妆名牌<span>◆</span></li>
            <li class="tab-item">清洁用品<span>◆</span></li>
            <li class="tab-item">男士精品</li>
        </ul>
        <div class="products">
            <div class="main active">
                <a href="###"><img src="imgs/guojidapai.jpg" alt="" /></a>
            </div>
            <div class="main">
                <a href="###"><img src="imgs/guozhuangmingpin.jpg" alt="" /></a>
            </div>
            <div class="main">
                <a href="###"><img src="imgs/qingjieyongpin.jpg" alt="" /></a>
            </div>
            <div class="main">
                <a href="###"><img src="imgs/nanshijingpin.jpg" alt="" /></a>
            </div>
        </div>
    </div>

js代码如下:会进行每一步分析

了解导航切换运行的原理,以及数组的索引

        let tab = document.querySelector('.tab')
        let lis = document.querySelectorAll('.tab .tab-item')
        let main = document.querySelectorAll('.main')
        
// 因为lis索引的为全部.tab-item,所以此处需要用到循环遍历
        for (let i = 0; i < lis.length; i++) {
            console.log(lis[i])
// 给每一个lis添加点击事件,切记lis[i]
            lis[i].addEventListener('click', function () {
                console.log(i)
                for (let i = 0; i < main.length; i++) {
                    // 清空li头部的样式
                    lis[i].className = '';
                }
                // 给每一个小li 添加头部样式
                this.className = 'active'
                // 清空内容框的图片内容
                for (let i = 0; i < main.length; i++) {
                    main[i].style.display = 'none'
                }
                //显示内容
                main[i].style.display = 'block'
            })
        }

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现HTML导航栏切换功能,你可以使用JavaScript来处理点击事件并切换显示的内容。以下是一个简单的示例代码: HTML部分: ```html <nav> <ul> <li><a href="#" onclick="toggleTab(event, 'tab1')">Tab 1</a></li> <li><a href="#" onclick="toggleTab(event, 'tab2')">Tab 2</a></li> <li><a href="#" onclick="toggleTab(event, 'tab3')">Tab 3</a></li> </ul> </nav> <div id="tab1" class="tab-content"> <h2>Tab 1 Content</h2> <p>This is the content for Tab 1.</p> </div> <div id="tab2" class="tab-content"> <h2>Tab 2 Content</h2> <p>This is the content for Tab 2.</p> </div> <div id="tab3" class="tab-content"> <h2>Tab 3 Content</h2> <p>This is the content for Tab 3.</p> </div> ``` CSS部分: ```css .tab-content { display: none; } .tab-content.show { display: block; } ``` JavaScript部分: ```javascript function toggleTab(event, tabId) { // 阻止默认链接行为 event.preventDefault(); // 获取所有的标签内容元素 var tabContents = document.getElementsByClassName("tab-content"); // 隐藏所有标签内容 for (var i = 0; i < tabContents.length; i++) { tabContents[i].classList.remove("show"); } // 显示选中的标签内容 var selectedTab = document.getElementById(tabId); selectedTab.classList.add("show"); } ``` 这个示例中,通过点击导航栏的链接来切换显示对应的标签内容。每个标签内容都有一个唯一的ID,并且具有相同的CSS类名"tab-content"。通过JavaScript的toggleTab函数来处理点击事件,通过添加和移除CSS类名"show"来切换显示和隐藏标签内容。 你可以根据自己的需要修改CSS样式和内容,以及添加更多的标签页。希望这能帮到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值