伸缩两级菜单

做界面有时需要使用到伸缩的两级菜单,下面有两种写伸缩菜单的方法。

第一种方法:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title></title>
    <style type="text/css">
        #navigation>ul{
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        #navigation>ul>li{
            border-bottom: 1px solid #ed9f9f;
        }
        #navigation>ul>li>a{
            text-decoration: none;
            background-color: red;
            padding: 5px 5px 5px 0.5em;
            display: block;
            border-left: 12px solid #711515;
            border-right: 1px solid #711515;
        }
        #navigation>ul>li>a:link,#navigation>ul>li>a:visited {
            background-color: #c11136;
            color: #fff;
        }
        #navigation>ul>li>a:hover{
            background-color: #990020;
            color: #ffff00;
        }

        /*子菜单样式*/
        #navigation>ul>li>ul{
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        #navigation>ul>li>ul>li {
            border-top: 1px solid #ed9f9f;
        }

        #navigation>ul>li>ul>li>a{
            display: block;
            padding: 3px 3px 3px 0.5em;
            text-decoration: none;
            border-left: 28px solid #a71f1f;
            border-right: 1px solid #711515;
        }
        #navigation>ul>li>ul>li>a:link,#navigation>ul>li>ul>li>a:visited{
            background-color: #e85070;
            color: #fff;
        }
        #navigation>ul>li>ul>li>a:hover{
            background-color: #c2425d;
            color: #ffff00;
        }
        #navigation ul li ul.myHide{
            display: none;
        }
        #navigation ul li ul.mySHow{
            display: none;
        }
    </style>
</head>
<body>
<div id="navigation">
    <ul id="listUL">
        <li><a href="#">Home</a></li>
        <li><a href="#">News</a>
            <ul class="myHide">
                <li><a href="#">Lastest News</a></li>
                <li><a href="#">All News</a></li>
            </ul>
        </li>
        <li><a href="#">Sports</a>
            <ul class="myHide">
                <li><a href="#">Basketball</a></li>
                <li><a href="#">Football</a></li>
                <li><a href="#">Volleyball</a></li>
            </ul>
        </li>
        <li><a href="#">Weather</a>
            <ul class="myHide">
                <li><a href="#">Today's Weather</a></li>
                <li><a href="#">Forecast</a></li>
                <li><a href="#">Volleyball</a></li>
            </ul>
        </li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</div>
<script>
    window.onload = function(){
        var ul = document.getElementById("listUL");
        var li = ul.childNodes;
        var oA;
        for(var i=0;i<li.length;i++){
            //是li且有ul标签
            if(li[i].tagName=="LI"&&li[i].getElementsByTagName("ul").length){
                oA = li[i].firstChild; //a标签
                oA.onclick = change;   //添加点击事件
            }
        }
    }

    function change(){
        var secondDiv = this.parentNode.getElementsByTagName("ul")[0];
        if(secondDiv.className == "myHide"){
            secondDiv.className = "myShow";
        }
        else
            secondDiv.className = "myHide";
    }
</script>
</body>
</html>

第二种方法:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title></title>
    <style type="text/css">
        #navigation>ul{
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        #navigation>ul>li{
            border-bottom: 1px solid #ed9f9f;
        }
        #navigation>ul>li>a{
            text-decoration: none;
            background-color: red;
            padding: 5px 5px 5px 0.5em;
            display: block;
            border-left: 12px solid #711515;
            border-right: 1px solid #711515;
        }
        #navigation>ul>li>a:link,#navigation>ul>li>a:visited {
            background-color: #c11136;
            color: #fff;
        }
        #navigation>ul>li>a:hover{
            background-color: #990020;
            color: #ffff00;
        }

        /*子菜单样式*/
        #navigation>ul>li>ul{
            list-style-type: none;
            margin: 0;
            padding: 0;
        }
        #navigation>ul>li>ul>li {
            border-top: 1px solid #ed9f9f;
        }

        #navigation>ul>li>ul>li>a{
            display: block;
            padding: 3px 3px 3px 0.5em;
            text-decoration: none;
            border-left: 28px solid #a71f1f;
            border-right: 1px solid #711515;
        }
        #navigation>ul>li>ul>li>a:link,#navigation>ul>li>ul>li>a:visited{
            background-color: #e85070;
            color: #fff;
        }
        #navigation>ul>li>ul>li>a:hover{
            background-color: #c2425d;
            color: #ffff00;
        }
       .myHide{
            display: none;
        }
        /*.mySHow{*/
            /*display: none;*/
        /*}*/
    </style>
</head>
<body>
<div id="navigation">
    <ul id="listUL">
        <li><a href="#">Home</a></li>
        <li><a href="#">News</a>
            <ul>
                <li><a href="#">Lastest News</a></li>
                <li><a href="#">All News</a></li>
            </ul>
        </li>
        <li><a href="#">Sports</a>
            <ul>
                <li><a href="#">Basketball</a></li>
                <li><a href="#">Football</a></li>
                <li><a href="#">Volleyball</a></li>
            </ul>
        </li>
        <li><a href="#">Weather</a>
            <ul>
                <li><a href="#">Today's Weather</a></li>
                <li><a href="#">Forecast</a></li>
                <li><a href="#">Volleyball</a></li>
            </ul>
        </li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</div>
<script src="js/jquery.min.js"></script>
<script>
   $(function(){
       $("li").find("ul").prev().click(function(){
           $(this).next().toggle();
       });
       $("li:has(ul)").find("ul").hide();
   });
</script>
</body>
</html>

第二种方法需要引入jQuery

  • prev() 当前标签之前的标签
  • next() 当前标签之后的标签

效果图:
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值