web前端开发之二级菜单的隐藏和展开

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>caidan</title>
	<style>
		#navigation{
			width: 200px;
			height: 1000px;
			float: left;

		}
		#navigation>ul{
			list-style-type: none;
			margin: 0px;
			padding: 0px;

		}
		#navigation>ul>li{
			border-bottom: 5px soild #ED9F9F;
		}
		#navigation>ul>li>a{
			display: block;
			padding: 5px 5px 5px 0.5em;
			text-decoration: none;
			border-left: 12px soild #711515;
			border-left: 1px soild #711515;
		}
		#navigation>ul>li>a:link,#navigation>ul>li>a:visited{
			background-color: #c11136;
			color: #FFFFFF;

		}
		#navigation >ul>li>a:hover{
			background-color: #990020;
			color: #ffff00;
		}
		#navigation ul li ul{
			list-style-type: none;
			margin: 0px;
			padding: 0px 0px 0px 0px;

		}
		#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 a:link,#navigation ul li li a:visited{
			background-color: #e85070;
			color: #FFFFFF;
		}
		#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: block;
		}
	</style>
	<script>
		window.οnlοad=function(){
			var oUl = document.getElementById("listUL");
			var aLi = oUl.childNodes;//获取所有子元素返回一个子元素节点集合包括#text节点,在DOM中,文本也是一个节点,类型为DOM Text,包含进去了每个li节点前面的文本节点"回车 ",即一个回车后面跟很多空格
			var oA;
			for(var i = 0;i<aLi.length;i++){

				if (aLi[i].tagName=="LI"&&aLi[i].getElementsByTagName("ul").length) {//找到同时满足标签名为li和返回带有ul标签名的对象的长度不为空的li节点
					oA = aLi[i].firstChild;//获得a标签
					oA.onclick = change;//给a标签绑定事件
				}
			}
		}
		function change(){
			var oSecondDiv = this.parentNode.getElementsByTagName("ul")[0];//找到
			if (oSecondDiv.className=="myHide") {
				oSecondDiv.className="myShow";
			}else{
				oSecondDiv.className="myHide";
			}
		}
	</script>
</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>
				
				</ul>
			</li>
			<li><a href="#">Contact Me</a></li>
		</ul>
	</div>
</body>
</html>



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
实现二级横向下拉菜单的方法有多种,以下是其一种常见的实现方式: 1. HTML结构: ```html <ul class="menu"> <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></li> <li><a href="#">菜单3</a> <ul> <li><a href="#">子菜单4</a></li> <li><a href="#">子菜单5</a></li> </ul> </li> <li><a href="#">菜单4</a></li> </ul> ``` 2. CSS样式: ```css .menu { list-style: none; padding: 0; margin: 0; } .menu > li { float: left; position: relative; } .menu > li > a { display: block; padding: 10px; background-color: #ccc; color: #000; text-decoration: none; } .menu ul { display: none; position: absolute; top: 100%; left: 0; z-index: 1; } .menu ul li { float: none; } .menu ul li a { white-space: nowrap; } .menu > li:hover > ul { display: block; } .menu ul ul { top: 0; left: 100%; } ``` 3. JavaScript代码: ```javascript // 可选:使用 JavaScript 实现鼠标悬停后下拉菜单的延迟效果 var timeoutId; var delay = 250; var hoverIn = function() { clearTimeout(timeoutId); var $submenu = $(this).find("ul"); $submenu.show(0); }; var hoverOut = function() { var $submenu = $(this).find("ul"); timeoutId = setTimeout(function() { $submenu.hide(0); }, delay); }; $(".menu > li").hover(hoverIn, hoverOut); ``` 以上代码实现了一个简单的二级横向下拉菜单,当鼠标悬停在一级菜单上时,对应的二级菜单展开,移开鼠标时会收起。你也可以根据需要进行样式和行为的定制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值