zoukankan      html  css  js  c++  java
  • 多级菜单

    HTML

    <ul id="nav">
    	<li>
    		<h2><span>+</span>第一级菜单</h2>
    		<ul>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    		</ul>
    	</li>
        <li>
    		<h2><span>+</span>第一级菜单</h2>
    		<ul>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    		</ul>
    	</li>
    	<li>
    		<h2><span>+</span>第一级菜单</h2>
    		<ul>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    		</ul>
    	</li>
    	<li>
    		<h2><span>+</span>第一级菜单</h2>
    		<ul>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    		</ul>
    	</li>
    	<li>
    		<h2><span>+</span>第一级菜单</h2>
    		<ul>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    			<li>
    				<h2><span>+</span>第二级菜单</h2>
    				<ul>
    					<li>
    						<h2><span>+</span>第三级菜单</h2>
    						<ul>
    							<li>
    								<h2>第四级菜单</h2>
    							</li>
    						</ul>
    					</li>
    				</ul>
    			</li>
    		</ul>
    	</li>
    </ul>
    

    CSS

    ul,h2{
    	margin: 0;
    	padding: 0;
    }
    li{
    	list-style: none;
    }
    #nav {
    	border: 1px solid #333;
    	float: left;
    	padding: 5px 0;
    	background: #ccf;
    }
    #nav ul {
    	padding-left: 20px;
    	display: none;
    }
    #nav h2 {
    	font-size: 30px;
    	height: 50px;
    	line-height: 50px;
    	padding: 0 15px;
    	cursor: pointer;
    }
    h2:hover{
    	color: red;
    }
    .active1{
    	display: block;
    }
    

    JS

    var nav=document.getElementById('nav');
    var spans=nav.getElementsByTagName('span');
    for (var i=0;i<spans.length;i++) {
    	
    	//获得所有有子菜单的h2
    	var hs=spans[i].parentNode;
    	hs.onOff=true;
    	
    	//点击菜单
    	hs.onclick=function(){
    		//获取当前h2的父节点的父节点下的所有ul
    		var uls=this.parentNode.parentNode.getElementsByTagName("ul");
    		if(this.onOff){
    			for (var j=0;j<uls.length;j++) {
                    //关闭所有的ul
                    uls[j].style.display='none';
                    //改变所有的span的innerHTML:获取ul的父节点li下的第一个子节点h2下的第一个子节点span
     				uls[j].parentNode.children[0].children[0].innerHTML='+';
     				uls[j].parentNode.children[0].onOff=true;
                }
    			this.children[0].innerHTML='-';
    			this.nextElementSibling.style.display='block';
    			this.onOff=false;
    		}else{
    			this.children[0].innerHTML='+';
                this.nextElementSibling.style.display='none';
                this.onOff=true;
    		}
    	}
    }
    

      

  • 相关阅读:
    综述:设计模式的分类及六大原则
    模板方法模式
    工厂模式三部曲之抽象工厂模式
    AI,DM,ML,PR的区别与联系
    delphi ADOCONNECTION异常拦截
    Delphi 10.2.3 精简版自动激活Embarcadero Delphi 10.2.3 v25.0.29899.2631 Lite v14.4
    Delphi使用TADOQuery的RowsAffected属性时需要注意的一个点
    delphi 新版内存表 FDMemTable
    delphi 中Adoquery ,在打开时能否让记录指针不移动? [问题点数:40分,结帖人microd]
    delphi循环校验数据集
  • 原文地址:https://www.cnblogs.com/yangxue72/p/8058366.html
Copyright © 2011-2022 走看看