前端开发 \ jQuery \ jQuery实现下拉菜单

jQuery实现下拉菜单

总点击28
简介:html文件<!DOCTYPEhtml> <htmllang=\"en\"> <head> <metacharset=\"UTF-8\"> <title>下拉菜单</title>

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() 方法通过使用滑动效果(高度变化)来切换元素的可见状态。

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

意见反馈 常见问题 官方微信 返回顶部