jQuery实现下拉菜单

html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>下拉菜单</title>
    <link rel="stylesheet" type="text/css" href="index.css">
    <script src="jquery-3.3.1.min.js"></script>
    <script src="index.js"></script>
</head>
<body>
    <div class="menu">
        <ul>
            <li>
                <a href="#">一级菜单1</a>
                <ul>
                    <li><a href="#">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                </ul>
            </li>
            <li>
                <a href="#">一级菜单2</a>
                <ul>
                    <li><a href="#">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                </ul>
            </li>
            <li>
                <a href="#">一级菜单3</a>
                <ul>
                    <li><a href="#">二级菜单1</a></li>
                    <li><a href="#">二级菜单2</a></li>
                    <li><a href="#">二级菜单3</a></li>
                </ul>
            </li>
        </ul>
    </div>
</body>
</html>

css文件

*{
    margin: 0;
    padding: 0;
}
ul{
    list-style: none;
}
.menu{
    width: 330px;
    height: 30px;
    padding-left: 10px;
    margin: 100px auto 0;
    background-image: url(images/bg.jpg);
}
.menu li{
    float: left;
    width: 100px;
    height: 30px;
    background-image: url(images/libg.jpg);
    margin-right: 10px;
    position: relative;
}
.menu a{
    display:block;
    width: 100px;
    height: 30px;
    line-height: 30px;
    text-decoration: none;
    text-align: center;
    color: black;
}
.menu li ul{
    position: absolute;
    display: none;
}

js文件

实现下拉菜单方法一:

$(document).ready(function () {
    $(".menu li").mouseenter(function () {
        $(this).children("ul").show();
    });
    $(".menu li").mouseleave(function () {
        $(this).children("ul").hide();
    });
});

实现下拉菜单方法二:

$(document).ready(function () {
    $(".menu li").hover(function () {
        $(this).children("ul").show();
    },function () {
        $(this).children("ul").hide();
    });
});

实现下拉菜单方法三:

$(document).ready(function () {
    $(".menu li").hover(function () {
       var $this = $(this).children("ul");
       var isShow = $this.css("display");
       if(isShow === "none") {
           $this.show();
       }else
       {
           $this.hide();
       }
    });
});
 
$(document).ready(function () {
    $(".menu li").hover(function () {
       var $this = $(this).children("ul");
       var isShow = $this.css("display");
       if(isShow === "block") {
           $this.hide();
       }else
       {
           $this.show();
       }
    });
});

实现下拉菜单方法四:

$(document).ready(function () {
    $(".menu li").hover(function () {
        $(this).children("ul").slideToggle();
    });
});

总结:

mouseover事件跟mouseenter事件的区别:

mouseover/mouseout事件,鼠标经过的时候会触发多次,每遇到一个子元素就会触发一次。

mouseenter/mouseleave事件,鼠标经过的时候只会触发一次

slideToggle() 

slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。

如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值