js菜單欄切換


先來看看需要實現的需求:

這是某購物網站上經常看到的效果

我們把網頁的模型抽象出來,下面是我實現的效果圖:

源代碼僅供大家參考,具體如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    * {
        margin: 0; 
        padding: 0; 
    }
    li {
        list-style: none;
        cursor: pointer;
    }
    .header {
        height: 25px;
        width: 100%;
        height: 25px;
        line-height: 25px;
        padding-bottom: 1px;
    }
    /* 控制其顯示和隱藏 */
    .show {
        width: 100%;
        height: 100%;
        display: block !important;
    }

    /* 其子元素為隱藏狀態 */
    .wrapper > div{
        display: none;
    }
    .wrapper {
        height: 600px;
        width: 100%;
        margin: 0 auto;
    }
    /* 添加下划線 */
    .add2line {
        color: #3385ff;
        border-bottom: 1px solid #3385ff;
    }

    .header-tab {
        display: flex;
        justify-content: center;
    }
    .header-tab {
        background-color: pink;
    }
    .box1 {
        width: 100%;
        height: 100%;
        background-color: skyblue;
    }
    </style>
</head>
<body>
    <nav class="header">
        <ul class="header-tab" id="box">
            <li class="add2line">更新內容</li>
            <li>使用說明</li>
            <li>福利中心</li>
            <li>上架物品</li>
            <li>我的寵物</li>
        </ul>
    </nav>
    <main class="wrapper">
        <div class="content show">
           <div class="box1">頁面一</div>
        </div>
        <div class="content">
            <div class="box1">頁面二</div>
        </div>
        <div class="content">
           <div class="box1">頁面三</div>
        </div>
        <div class="content">
            <div class="box1">頁面四</div>
        </div>
        <div class="content">
            <div class="box1">頁面五</div>
        </div>
    </main>
</body>
</html>
<script>
   window.onload = function () {
       isShow()
       function isShow () {
           let liArr = document.querySelectorAll('#box > li')
           let divArr = document.querySelectorAll('.wrapper .content')
           for (let i = 0; i < liArr.length; i++) {
               liArr[i].index = i;
            //    onmouseover事件會在鼠標指針移動到指定的對象上時觸發事件發生
            //    也可以把其改成鼠標點擊事件 onclick
               liArr[i].onmouseover = function () {
                   for (let j = 0; j < liArr.length; j++) {
                    liArr[j].className = ''
                    divArr[j].className = ''
                   }
                   divArr[this.index].className = 'show'
                   liArr[this.index].className = 'add2line'
               }
           }
       }
   }
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM