实现二级菜单的伸缩功能的两种方法

2023年6月5日11:09:24

要求
1、点击一级菜单,如果当前二级菜单是打开状态则二级菜单收起,小图标变成+
如果当前二级菜单是关闭状态则展开二级菜单,小图标变成- 并且收起其他的二级菜单
2、页面中的二级菜单最多只能有一个是展开状态

方法一:

<html>
<head>
<title>1. 实现伸缩二级菜单</title>
<meta charset="utf-8" />
<style>
	li{
		list-style:none;
	}
	li span {
		padding-left:20px;
		cursor:pointer;
	}
	.open{
		background:url("img/minus.png") no-repeat center left;
	}
	.closed{
		background: url("img/add.png") no-repeat center left;
	}
	.show{display:block;}
	.hide{display:none;}
	
</style>
<script type="text/javascript">

 window.onload = function (){
    var Allspan = document.getElementsByTagName('span');
    for(var i = 0 ; i<Allspan.length; i++){
            Allspan[i].onclick=function(){
             if(this.className =="open"){
             	this.className = "closed";
             	this.nextElementSibling.className="hide";
             }else{
             	var span = document.querySelector("ul.tree span.open");
             	if(span){
             		span.className="closed";
             		span.nextElementSibling.className = "hide";
             	}
             	this.className = "open";
             	this.nextElementSibling.className="show";
             }
    }

}
}

</script>
</head>
<body>
	
	<ul class="tree">
		<li>
			<span class="open" >考勤管理</span>
			<ul class="show">
				<li>日常考勤</li>
				<li>请假申请</li>
				<li>加班/出差</li>
			</ul>
		</li>
		<li>
      <span class="closed" >信息中心</span>
			<ul class="hide">
				<li>通知公告</li>
				<li>公司新闻</li>
				<li>规章制度</li>
			</ul>
		</li>
		<li>
      <span class="closed">协同办公</span>
			<ul class="hide">
				<li>公文流转</li>
				<li>文件中心</li>
				<li>内部邮件</li>
				<li>即时通信</li>
				<li>短信提醒</li>
			</ul>
		</li>
	</ul>
    
</body>
</html>

方法二:

<!DOCTYPE HTML>
<html>
<head>
<title>1. 实现伸缩二级菜单</title>
<meta charset="utf-8" />
<style>
	li{
		list-style:none;
	}
	li span {
		padding-left:20px;
		cursor:pointer;
	}
	.open{
		background:url("img/minus.png") no-repeat center left;
	}
	.closed{
		background: url("img/add.png") no-repeat center left;
	}
	.show{display:block;}
	.hide{display:none;}
	
</style>
<script type="text/javascript">

 window.onload = function (){
    var Allspan = document.getElementsByTagName('span');
    for(var i = 0 ; i<Allspan.length; i++){
            Allspan[i].onclick=function(){
             if(this.className =="open"){
             	this.className = "closed";
             	this.nextElementSibling.className="hide";
             }else{
             	var span = document.querySelector("ul.tree span.open");
             	if(span){
             		span.className="closed";
             		span.nextElementSibling.className = "hide";
             	}
             	this.className = "open";
             	this.nextElementSibling.className="show";
             }
    }

}
}

</script>
</head>
<body>
	<ul class="tree">
		<li>
			<span class="open" >考勤管理</span>
			<ul class="show">
				<li>日常考勤</li>
				<li>请假申请</li>
				<li>加班/出差</li>
			</ul>
		</li>
		<li>
      <span class="closed" >信息中心</span>
			<ul class="hide">
				<li>通知公告</li>
				<li>公司新闻</li>
				<li>规章制度</li>
			</ul>
		</li>
		<li>
      <span class="closed">协同办公</span>
			<ul class="hide">
				<li>公文流转</li>
				<li>文件中心</li>
				<li>内部邮件</li>
				<li>即时通信</li>
				<li>短信提醒</li>
			</ul>
		</li>
	</ul>
    
</body>
</html>

  • 作者:阮太太
  • 原文链接:https://blog.csdn.net/qq_38409767/article/details/99972373
    更新时间:2023年6月5日11:09:24 ,共 2384 字。