CSS+JavaScript 三级分类菜单

<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>CSS+JavaScript三级分类菜单</title>
    <style>
        *,body,ul,li,h1,h2 {
    margin: 0;
    padding: 0;
    list-style: none;
}
 
body {
    font: 12px;
    padding-top: 20px;
}

dl {display: flex;}
dt {margin-right:10px;}

#menu {
    width: 1000px;
    margin: auto;
}
 
#menu h1 {
    cursor: pointer;
    font-size: 12px;
    margin-right: 10px;
    display: inline;
}
 
#menu h2 {
    cursor: pointer;
    display: inline;
    color: #777;
    font-size: 12px;
}
 
#menu ul {
    height: auto;
}
 
#menu ul li {
    display: inline;
}

.min {
    display: flex;
}
 
.no {
    display: none;
}
    </style>
    <script language="JavaScript">
        function ShowMenu(obj, noid) {
            var block = document.getElementById(noid);
            var n = noid.substr(noid.length - 1);
            var min = document.getElementById("min");
            var child = document.getElementById("child");
            
            if (noid.length == 4) {
                var ul = document.getElementById(noid.substring(0, 3)).getElementsByTagName("ul");
                var h2 = document.getElementById(noid.substring(0, 3)).getElementsByTagName("h2");
                for (var i = 0; i < h2.length; i++) {
                    h2[i].style.color = "";
                }
                obj.style.color = "#FF0000";
                
                for (var i = 0; i < ul.length; i++) {
                    if (i != n) {
                        ul[i].className = "no";
                    }
                }
            } else {
                var div = document.getElementById("menu").getElementsByTagName("div");
                var h1 = document.getElementById("menu").getElementsByTagName("h1");
                
                for (var i = 0; i < h1.length; i++) {
                    h1[i].style.color = "";
                }
                obj.style.color = "#0000FF";
                
                for (var i = 0; i < div.length; i++) {
                    if (i != n) {
                        div[i].className = "no";
                    }
                }
            }
            
            if (block.className == "no") {
                block.className = "";
            } else {
                block.className = "no";
                obj.style.color = "";
            }
        }
    </script>
</head>
 
<body>
    <div id="menu">
        <section>
            <span>大类:</span>
            <span id="min" class="no">小类:</span>
            <span id="child" class="no">子类:</span>
        </section>
        
        <h1>全部</h1><h1 onClick="javascript:ShowMenu(this,'NO0')">一级菜单A</h1> <h1 onClick="javascript:ShowMenu(this,'NO1')">一级菜单B</h1>

            <div id="NO0" class="no">
                <h2 onClick="javascript:ShowMenu(this,'NO00')"> - 二级菜单A_1</h2>
                <h2 onClick="javascript:ShowMenu(this,'NO01')"> - 二级菜单A_2</h2>
                <h2 onClick="javascript:ShowMenu(this,'NO02')"> - 二级菜单A_3</h2>
                <h2 onClick="javascript:ShowMenu(this,'NO03')"> - 二级菜单A_4</h2>
                    
                    <ul id="NO00" class="no">
                    <li><a href="">3级菜单A_0</a></li>
                    <li>3级菜单A_1</li>
                    <li>3级菜单A_2</li>
                    <li>3级菜单A_3</li>
                   </ul>
                   
                   <ul id="NO01" class="no">
                    <li>3级菜单A_0</li>
                    <li>3级菜单A_1</li>
                    <li>3级菜单A_2</li>
                    <li>3级菜单A_3</li>
                    <li>3级菜单A_4</li>
                   </ul>
                   
                   <ul id="NO02" class="no">
                    <li>3级菜单A_0</li>
                    <li>3级菜单A_1</li>
                    <li>3级菜单A_2</li>
                    <li>3级菜单A_3</li>
                    <li>3级菜单A_4</li>
                    <li>3级菜单A_5</li>
                   </ul>
                   
                   <ul id="NO03" class="no">
                    <li>3级菜单A_0</li>
                    <li>3级菜单A_1</li>
                    <li>3级菜单A_2</li>
                    <li>3级菜单A_3</li>
                    <li>3级菜单A_4</li>
                    <li>3级菜单A_5</li>
                    <li>3级菜单A_6</li>
                   </ul>
            </div>
            <div id="NO1" class="no">
               <h2 onClick="javascript:ShowMenu(this,'NO10')"> - 二级菜单B_1</h2>
               <h2 onClick="javascript:ShowMenu(this,'NO11')"> - 二级菜单B_2</h2>
               <ul id="NO10" class="no">
                <li>3级菜单B_0</li>
                <li>3级菜单B_1</li>
                <li>3级菜单B_2</li>
                <li>3级菜单B_3</li>
                <li>3级菜单B_4</li>
                <li>3级菜单B_5</li>
                <li>3级菜单B_6</li>
                <li>3级菜单B_7</li>
               </ul>
               
               <ul id="NO11" class="no">
                <li>3级菜单B_0</li>
                <li>3级菜单B_1</li>
                <li>3级菜单B_2</li>
                <li>3级菜单B_3</li>
               </ul>
            </div>
    </div>
</body>
 
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值