使用JQuery设计动态下拉菜单

2014-07-04 19:09:47|?次阅读|上传:huigezrx【已有?条评论】发表评论

关键词:JavaScript, JQuery, Web|来源:唯设编程网

JQuery功能非常强大,使用它创建一个下拉菜单非常简单,本文介绍其制作方法,下面是该案例实现的最终效果:

使用JQuery设计动态下拉菜单

菜单栏的内容非常简单:

<div class="nav">
	<div id="left"><img src="images/nav_l.jpg"></div>
	<ul>
		<li><a class="link" href="#">网站首页</a></li>
		<li class="mainmenu">
			<a class="link" href="#">电子商务</a>
			<dl>
				<dd><a href="#">零度对策</a></dd>
				<dd><a href="#">网站建设</a></dd>
				<dd><a href="#">网络营销</a></dd>
				<dd><a href="#">电子商务</a></dd>
				<dd><a href="#">广告代码</a></dd>
				<dd><a href="#">网页菜单</a></dd>
			</dl>
		</li>
		<li class="mainmenu">
			<a class="link" href="#">网络营销</a>
			<dl>
				<dd><a href="#">零度对策</a></dd>
				<dd><a href="#">网站建设</a></dd>
				<dd><a href="#">网络营销</a></dd>
				<dd><a href="#">电子商务</a></dd>
				<dd><a href="#">广告代码</a></dd>
				<dd><a href="#">网页菜单</a></dd>
			</dl>
		</li>
		<li class="mainmenu">
			<a class="link" href="#">客户服务</a>
			<dl>
				<dd><a href="#">零度对策</a></dd>
				<dd><a href="#">网站建设</a></dd>
				<dd><a href="#">网络营销</a></dd>
				<dd><a href="#">电子商务</a></dd>
				<dd><a href="#">广告代码</a></dd>
				<dd><a href="#">网页菜单</a></dd>
			</dl>    
		</li>
		<li class="mainmenu">
			<a class="link" href="#">工程案例</a>
			<dl>
				<dd><a href="#">零度对策</a></dd>
				<dd><a href="#">网站建设</a></dd>
				<dd><a href="#">网络营销</a></dd>
				<dd><a href="#">电子商务</a></dd>
				<dd><a href="#">广告代码</a></dd>
				<dd><a href="#">网页菜单</a></dd>
			</dl>  
		</li>
		<li class="mainmenu">
			<a class="link" href="#">行业资讯</a>
			<dl>
				<dd><a href="#">零度对策</a></dd>
				<dd><a href="#">网站建设</a></dd>
				<dd><a href="#">网络营销</a></dd>
				<dd><a href="#">电子商务</a></dd>
				<dd><a href="#">广告代码</a></dd>
				<dd><a href="#">网页菜单</a></dd>
			</dl>  
		</li>
		<li class="mainmenu"><a href="#">联系我们</a></li>
	</ul>
	<div id="right"><img src="images/nav_r.jpg"></div>
</div>

菜单被包含在一个div中,该div包含菜单的左侧部分和右侧部分,还包含一个使用ul构成的菜单主体。其中每个菜单项对应一个ul的li节点,子菜单包含在dl中,每一个子菜单对应一个dd节点。下面通过css调整菜单的样式:

<style type="text/css">

* {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
#left {
    float: left;
}
#right {
    float: right;
}
.nav {
    background: url("images/nav_bg.jpg") repeat-x scroll 0 0 rgba(0, 0, 0, 0);
    height: 46px;
    margin: 40px auto;
    width: 1000px;
}
.nav li {
    float: left;
    font-size: 14px;
    height: 46px;
    line-height: 46px;
    position: relative;
    text-align: center;
    width: 108px;
}
.nav li a {
    color: #fff;
    display: block;
    text-decoration: none;
}
.nav li a.link {
    float: left;
    width: 108px;
}
.nav ul li a:hover {
    background: url("images/nav_hover.jpg") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
    display: block;
}
.nav dl {
    background: none repeat scroll 0 0 #fcc;
    border: 1px solid #c33;
    font-size: 12px;
    left: 0;
    position: absolute;
    top: 46px;
    width: 108px;
}
.nav dl dd a {
    color: #933;
}
.nav dl dd a:hover {
    background: none repeat scroll 0 0 #f36;
    color: #000;
    opacity: 0.5;
}
</style>

css的设置方法非常简单,如果有不清楚可以直接拷贝其中的代码,需要提醒注意的是position:absolute的父容器最好使用position:relative进行定位。下面是JQuery设置菜单动态效果的代码:

$(function(){
	$("dl").hide();
	
	$("li.mainmenu").hover(function(){
		$(this).find("dl").stop(true,true);
		$(this).find("dl").slideDown();
	},function(){
		$(this).find("dl").stop(true,true);
		$(this).find("dl").slideUp();
	});
	
})

默认情况让所有子菜单隐藏,这通过JQuery的选择器$("dl")来实现,然后添加菜单项的hover响应函数,注意这是一个回调函数,包括一个鼠标移动到菜单上面和离开菜单对应的两个函数,鼠标移动到菜单时使用slideDown将子菜单显示,鼠标离开后使用slideUp将子菜单隐藏。

由此可见,使用JQuery的强大功能实现一些网页特效是非常简单方便的。

发表评论0条 】
网友评论(共?条评论)..
使用JQuery设计动态下拉菜单