当前位置: 首页 > 编程笔记 >

JS实现无限级网页折叠菜单(类似树形菜单)效果代码

蒋硕
2023-03-14
本文向大家介绍JS实现无限级网页折叠菜单(类似树形菜单)效果代码,包括了JS实现无限级网页折叠菜单(类似树形菜单)效果代码的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了JS实现无限级网页折叠菜单(类似树形菜单)效果代码。分享给大家供大家参考。具体如下:

这是一款超不错的网页折叠菜单,采用JavaScript实现。折叠菜单是大家比较常见到的一种菜单形式,可广泛应用于管理系统、后台左侧、产品列表中,本折叠菜单有点树形菜单的味道,相信“无限级”会满足你的要求。

运行效果截图如下:

在线演示地址如下:

http://demo.jb51.net/js/2015/js-unlimit-fade-in-out-tree-menu-codes/

具体代码如下:

<html>
<head>
<title>无限级折叠菜单JS版</title>
<style> 
<!--
body,ul,h3 {margin:0px; padding:0px;}
li {list-style-type:none;}
body{
 font-size:12px;
 color:#333; 
 font-family: Simsun;
 line-height:15px;
 }
a{text-decoration:none;color:#004285;border:none;}
a:hover{text-decoration:none;color:#C33;}
#menu {
 width:260px;
 margin:50px auto; 
 padding:10px; 
 border:#EEE 1px solid;
 }
 #menu h3 {
 font-size:12px;
 }
 #menu ul { 
 background:url("images/ul-bg.gif") repeat-y 5px 0px; overflow:hidden;
 }
 #menu ul li {
 padding:5px 0 2px 15px; 
 background:url("images/tree-ul-li.gif") no-repeat 5px -32px; 
 }
 #menu ul li ul {display:none;}
 #menu ul li em {
 cursor:pointer;
 display:inline-block;
 width:15px;
 float:left;
 height:15px;
 margin-left:-14px;
 background:url("images/tree-ul-li.gif") no-repeat -32px 2px;
 }
 #menu ul li em.off {
 background-position: -17px -18px;
 }
 #menu ul li#end {
 background-color:#FFF;
 }
 #menu ul.off { 
 display:block;
 }
-->
</style>
</head>
<body>
<div id="menu">
 <h3>无限级折叠菜单JavaScript版</h3>
 <ul>
 <li><em></em><a href='javascript:void(0);'>菜单_1_1</a>
 <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_2_1</a>
  <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_3_1</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_2_2</a>
  <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_3_1</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  </ul>
  </li>
 </ul>
 </li>
 <li id='end'><em></em><a href='javascript:void(0);'>菜单_1_2</a>
 <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_2_1</a>
  <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_3_1</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_2_2</a>
  <ul>
  <li><em></em><a href='javascript:void(0);'>菜单_3_1</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  <li id='end'><em></em><a href='javascript:void(0);'>菜单_3_2</a>
  <ul>
   <li><em></em><a href='javascript:void(0);'>菜单_4_1</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
   <li id='end'><em></em><a href='javascript:void(0);'>菜单_4_2</a>
   <ul>
   <li><a href='javascript:void(0);'>菜单_5_1</a></li>
   <li id='end'><a href='javascript:void(0);'>菜单_5_2</a></li>
   </ul>
   </li>
  </ul>
  </li>
  </ul>
  </li>
 </ul>
 </li>
 </ul>
</div>
<script type="text/javascript"> 
(function(e){
 for(var _obj=document.getElementById(e.id).getElementsByTagName(e.tag),i=-1,em;em=_obj[++i];){
 em.onclick = function(){ //onmouseover
  var ul = this.nextSibling;
  if(!ul){return false;}
  ul = ul.nextSibling; if(!ul){return false;} 
  if(e.tag != 'a'){ ul = ul.nextSibling; if(!ul){return false;} } //a 标签控制 隐藏或删除该行
  for(var _li=this.parentNode.parentNode.childNodes,n=-1,li;li=_li[++n];){
  if(li.tagName=="LI"){
   for(var _ul=li.childNodes,t=-1,$ul;$ul=_ul[++t];){
   switch($ul.tagName){
   case "UL":
    $ul.className = $ul!=ul?"" : ul.className?"":"off";
   break;
   case "EM":
    $ul.className = $ul!=this?"" : this.className?"":"off";
   break;
   }
   }
  }
  }
 }
 }
})({id:'menu',tag:'em'});
</script>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

 类似资料:
  • 本文向大家介绍JS+CSS实现的简单折叠展开多级菜单效果,包括了JS+CSS实现的简单折叠展开多级菜单效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS+CSS实现的可折叠展开多级菜单效果。分享给大家供大家参考。具体如下: 这是一款JS+CSS实现的多级折叠菜单,可折叠展开/合拢,没有引用任何的外部文件,也没有用到图片,虽然简单,而且还有些粗糙,但核心的东西已经展示给大家了,正在研究

  • 本文向大家介绍vue实现树形菜单效果,包括了vue实现树形菜单效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue实现树形菜单效果展示的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JS+CSS实现的竖向简洁折叠菜单效果代码,包括了JS+CSS实现的竖向简洁折叠菜单效果代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS+CSS实现的竖向简洁折叠菜单效果代码。分享给大家供大家参考,具体如下: 这是一款JS+CSS竖向简洁的折叠菜单,支持三级分类,红色垂直型,个人感觉非常棒,希望大家喜欢。 运行效果截图如下: 在线演示地址如下: http://demo

  • 本文向大家介绍JS实现的竖向折叠菜单代码,包括了JS实现的竖向折叠菜单代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的竖向折叠菜单代码。分享给大家供大家参考,具体如下: 先来看看运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/js-hxzd-menu-demo/ 具体代码如下: 希望本文所述对大家JavaScript程序设计有所帮

  • 本文向大家介绍java实现构造无限层级树形菜单,包括了java实现构造无限层级树形菜单的使用技巧和注意事项,需要的朋友参考一下 这里来讲一下后台java如何构造多叉树,这样前台就可接收到数据递归构造树形菜单了。 我们来理一下如何实现构造多叉树的逻辑吧,其实整个问题概括起来就是 1、构造一个实体类,用来存储节点,所以我们构造的需要四个对象(id,pid,name,和chirenList) 2、构造菜

  • 本文向大家介绍Vue.js组件tree实现无限级树形菜单,包括了Vue.js组件tree实现无限级树形菜单的使用技巧和注意事项,需要的朋友参考一下 分享一段用 <ul>和<li>标签实现tree的代码,可能写的不是很好,如果大家有更好的希望分享下。 代码看这里喽: html代码: js代码: 效果图: 本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。 关于vue.js组件的教程