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() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。