JavaScript HTML CSS显示隐藏二级菜单(下拉菜单)

一级菜单效果如图一所示
按键选项一 至 选项四是一级菜单
当点击选项一时 弹出二级菜单 效果如图二所示(其余一级菜单也有对应的二级菜单)

点击前
点击后
html构造

<body>
 		<div>
 			<ul id='ul_0'>
 				<li><a οnclick="javascript:Foo(); return false;" href="#">二级菜单</a>
 					
 				</li>
 				<li><a href="#">选项一</a>
 					<ul>1</ul>
 					<ul>2</ul>
 					<ul>3</ul>
 				</li>
 				<li><a href="#">选项二</a>
 					<ul>1</ul>
 					<ul>2</ul>
 					<ul>3</ul>
 				</li>
 				<li><a href="#">选项三</a>
 					<ul>1</ul>
 					<ul>2</ul>
 					<ul>3</ul>
 					<ul>4</ul>
 				</li>
 				<li><a href="#">选项四</a>
 					<ul>1</ul>
 					<ul>2</ul>
 					<ul>3</ul>
 					<ul>4</ul>
 					<ul>5</ul>
 				</li>
 			</ul>
 		</div>
</body>

css样式 需要注意的class1中display:none 是将选中元素不显示 且不占位置
我们只需要用js操纵对象的类即可使二级菜单弹出 和隐藏

<style>
		*{
			border:0;
			padding: 0;
			margin: 0;
		}
		div ul{
			background-color: bisque;
			border-radius: 5px;
			margin: 0 auto;
			list-style: none;
			border :1px solid black;
			width:80px;
			text-align: center;
			overflow: hidden;
		}
		div li{
			background-color: pink;
			margin: 0 auto;
			padding: none;
			list-style: none;
			border :1px solid black;
			width:80px;
			text-align: center;
		}
		.class1{
			display: none;
		}
	</style>

javascript 代码
使用queryselector选中元素 修改类名
最后调用onclick函数 使二级菜单默认隐藏

<script type="text/javascript">
	window.onload =function(){
		var ul_0= document.querySelector('#ul_0');
		
		for(var j=1 ;j<5;j++)
		ul_0.children[j].children[0].onclick =function(){
			var ul= this.parentNode.querySelectorAll('ul');
			for(var i=0;i<ul.length;i++){
				if(ul[i].className=='class1')
				ul[i].className='unclass1';
				else 
				ul[i].className='class1';
				
			}
		}
		for(var j=1 ;j<5;j++)
		ul_0.children[j].children[0].onclick();  /*默认各个选项卡关闭*/
		}
</script>



  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值