亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js實現無限級樹形導航列表效果代碼

2019-11-20 11:31:59
字體:
來源:轉載
供稿:網友

本文實例講述了js實現無限級樹形導航列表效果代碼。分享給大家供大家參考。具體如下:

這是一款js實現無限級樹形下拉導航菜單,簡潔實用,用到一個已封裝好的JS類,有用的大家借鑒一下。

運行效果截圖如下:

在線演示地址如下:

http://demo.VeVB.COm/js/2015/js-unlimit-tree-style-nav-list-codes/

具體代碼如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css">  *{ margin:0; padding:0; list-style:none;}  body { margin:20px;}  h2 { font-family:"黑體"; font-size:24px; text-align:center; line-height:32px;}  h5 { font-size:12px; text-align:center; font-weight:normal; color:#666; line-height:28px;}  #nav a { text-decoration:underline;color:#06c; font-size:14px; line-height:24px;}  #nav ul{ margin-bottom:5px;}  #nav strong{ color:#696;}  #nav.dyn li ul{ display:none;}  #nav.dyn li ul.show{ display:block;}  #nav.dyn li{ padding-left:15px;}  #nav.dyn li.parent{ background:url(images/user_23.gif) 5px 10px no-repeat;}  #nav.dyn li.open{ background:url(images/user_23.gif) 5px -34px no-repeat;}  </style> <script type="text/javascript">DOMhelp={ debugWindowId:'DOMhelpdebug', init:function(){  if(!document.getElementById || !document.createTextNode){return;} }, lastSibling:function(node){  var tempObj=node.parentNode.lastChild;  while(tempObj.nodeType!=1 && tempObj.previousSibling!=null){   tempObj=tempObj.previousSibling;  }  return (tempObj.nodeType==1)?tempObj:false; }, firstSibling:function(node){  var tempObj=node.parentNode.firstChild;  while(tempObj.nodeType!=1 && tempObj.nextSibling!=null){   tempObj=tempObj.nextSibling;  }  return (tempObj.nodeType==1)?tempObj:false; }, getText:function(node){  if(!node.hasChildNodes()){return false;}  var reg=/^/s+$/;  var tempObj=node.firstChild;  while(tempObj.nodeType!=3 && tempObj.nextSibling!=null || reg.test(tempObj.nodeValue)){   tempObj=tempObj.nextSibling;  }  return tempObj.nodeType==3?tempObj.nodeValue:false; }, setText:function(node,txt){  if(!node.hasChildNodes()){return false;}  var reg=/^/s+$/;  var tempObj=node.firstChild;  while(tempObj.nodeType!=3 && tempObj.nextSibling!=null || reg.test(tempObj.nodeValue)){   tempObj=tempObj.nextSibling;  }  if(tempObj.nodeType==3){tempObj.nodeValue=txt}else{return false;} }, createLink:function(to,txt){  var tempObj=document.createElement('a');  tempObj.appendChild(document.createTextNode(txt));  tempObj.setAttribute('href',to);  return tempObj; }, createTextElm:function(elm,txt){  var tempObj=document.createElement(elm);  tempObj.appendChild(document.createTextNode(txt));  return tempObj; }, closestSibling:function(node,direction){  var tempObj;  if(direction==-1 && node.previousSibling!=null){   tempObj=node.previousSibling;   while(tempObj.nodeType!=1 && tempObj.previousSibling!=null){     tempObj=tempObj.previousSibling;   }  }else if(direction==1 && node.nextSibling!=null){   tempObj=node.nextSibling;   while(tempObj.nodeType!=1 && tempObj.nextSibling!=null){     tempObj=tempObj.nextSibling;   }  }  return tempObj.nodeType==1?tempObj:false; }, initDebug:function(){  if(DOMhelp.debug){DOMhelp.stopDebug();}  DOMhelp.debug=document.createElement('div');  DOMhelp.debug.setAttribute('id',DOMhelp.debugWindowId);  document.body.insertBefore(DOMhelp.debug,document.body.firstChild); }, setDebug:function(bug){  if(!DOMhelp.debug){DOMhelp.initDebug();}  DOMhelp.debug.innerHTML+=bug+'/n'; }, stopDebug:function(){  if(DOMhelp.debug){   DOMhelp.debug.parentNode.removeChild(DOMhelp.debug);   DOMhelp.debug=null;  } }, getKey:function(e){  if(window.event){  var key = window.event.keyCode;  } else if(e){  var key=e.keyCode;  }  return key; },/* helper methods */ getTarget:function(e){  var target = window.event ? window.event.srcElement : e ? e.target : null;  if (!target){return false;}  while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){   target=target.parentNode;  }  return target; }, stopBubble:function(e){  if(window.event && window.event.cancelBubble){   window.event.cancelBubble = true;  }   if (e && e.stopPropagation){   e.stopPropagation();  } }, stopDefault:function(e){  if(window.event && window.event.returnValue){   window.event.returnValue = false;  }   if (e && e.preventDefault){   e.preventDefault();  } }, cancelClick:function(e){  if (window.event){   window.event.cancelBubble = true;   window.event.returnValue = false;  }  if (e && e.stopPropagation && e.preventDefault){   e.stopPropagation();   e.preventDefault();  } }, addEvent: function(elm, evType, fn, useCapture){  if (elm.addEventListener){   elm.addEventListener(evType, fn, useCapture);   return true;  } else if (elm.attachEvent) {   var r = elm.attachEvent('on' + evType, fn);   return r;  } else {   elm['on' + evType] = fn;  } }, cssjs:function(a,o,c1,c2){  switch (a){   case 'swap':    o.className=!DOMhelp.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);   break;   case 'add':    if(!DOMhelp.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}   break;   case 'remove':    var rep=o.className.match(' '+c1)?' '+c1:c1;    o.className=o.className.replace(rep,'');   break;   case 'check':    var found=false;    var temparray=o.className.split(' ');    for(var i=0;i<temparray.length;i++){     if(temparray[i]==c1){found=true;}    }    return found;   break;  } }, safariClickFix:function(){ return false; }}DOMhelp.addEvent(window, 'load', DOMhelp.init, false);</script> <script type="text/javascript"> <!-- sn={  dynamicClass:'dyn',  showClass:'show',  parentClass:'parent',  openClass:'open',  navID:'nav',  init:function(){  var triggerLink;  if(!document.getElementById || !document.createTextNode){return;}  var nav=document.getElementById(sn.navID);  if(!nav){return;}  DOMhelp.cssjs('add',nav,sn.dynamicClass);   var nested=nav.getElementsByTagName('ul');  for(var i=0;i<nested.length;i++){   triggerLink=nested[i].parentNode.getElementsByTagName('a')[0];   DOMhelp.cssjs('add',triggerLink.parentNode,sn.parentClass);    DOMhelp.addEvent(triggerLink,'click',sn.changeSection,false);   triggerLink.onclick=DOMhelp.safariClickFix;   if(nested[i].parentNode.getElementsByTagName('strong').length>0){   DOMhelp.cssjs('add',triggerLink.parentNode,sn.openClass);    DOMhelp.cssjs('add',nested[i],sn.showClass);   }  }  },  changeSection:function(e){  var t=DOMhelp.getTarget(e);  var firstList=t.parentNode.getElementsByTagName('ul')[0];  if(DOMhelp.cssjs('check',firstList,sn.showClass)){   DOMhelp.cssjs('remove',firstList,sn.showClass)   DOMhelp.cssjs('swap',t.parentNode,sn.openClass,sn.parentClass);  } else {   DOMhelp.cssjs('add',firstList,sn.showClass)   DOMhelp.cssjs('swap',t.parentNode,sn.openClass,sn.parentClass);  }  DOMhelp.cancelClick(e);  } } DOMhelp.addEvent(window,'load',sn.init,false); --> </script> <h2>js實現無限級樹形導航列表</h2><ul id="nav">  <li><a href="#">主頁</a></li>  <li><a href="#">產品</a>  <ul>   <li><a href="#">大類別一</a>   <ul>    <li><a href="#">小類別一</a>    <ul>     <li><a href="#">次類別一</a></li>     <li><a href="#">次類別二</a></li>    </ul>    </li>    <li><a href="#">小類別二</a></li>   </ul>   </li>   <li><a href="#">大類別二</a></li>   <li><a href="#">大類別三</a>   <ul>    <li><a href="#">小類別一</a></li>    <li><a href="#">小類別二</a></li>   </ul>   </li>  </ul>  </li>  <li><a href="#">服務</a>  <ul>   <li><a href="#">大類別一</a></li>   <li><a href="#">大類別二</a></li>   <li><a href="#">大類別三</a></li>  </ul>  </li>  <li><a href="#">合作</a></li>  <li><a href="#">關于我們</a>  <ul>   <li><a href="#">大類別一</a>   <ul>    <li><a href="#">小類別一</a></li>    <li><a href="#">小類別二</a></li>   </ul>   </li>   <li><a href="#">大類別二</a>   <ul>    <li><a href="#">小類別一</a></li>    <li><a href="#">小類別二</a></li>   </ul>   </li>   <li><a href="#">大類別三</a>   <ul>    <li><a href="#">小類別一</a></li>    <li><a href="#">小類別二</a></li>   </ul>   </li>   <li><a href="#">大類別四</a></li>  </ul>  </li>  <li><a href="#">聯系我們</a>  <ul>   <li><a href="#">大類別一</a></li>   <li><a href="#">大類別二</a></li>  </ul>  </li> </ul>

希望本文所述對大家的JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久久久不卡| 国产日韩精品综合网站| 在线观看欧美日韩| 亚洲午夜精品久久久久久性色| 亚洲第一精品夜夜躁人人躁| 影音先锋欧美在线资源| 国产精品免费网站| 精品成人av一区| 91精品国产色综合久久不卡98口| 国产一区二区三区日韩欧美| 97碰碰碰免费色视频| 国产一区二区三区久久精品| 国产精品一区二区三区成人| 久久久这里只有精品视频| 欧美精品在线播放| 欧美性xxxx极品高清hd直播| 日本精品一区二区三区在线| www日韩中文字幕在线看| 国产成人精品久久二区二区| 亚洲欧美日韩精品| 久久香蕉国产线看观看网| 欧美精品一区三区| 97精品久久久| 国产乱人伦真实精品视频| 另类色图亚洲色图| 色偷偷888欧美精品久久久| 欧洲s码亚洲m码精品一区| 日本一区二区不卡| 精品福利免费观看| 91影视免费在线观看| 午夜免费久久久久| 精品久久久中文| 国产日韩欧美黄色| 国产精品www网站| 亚洲精品电影久久久| 国产亚洲一级高清| 日韩美女写真福利在线观看| 亚洲第一综合天堂另类专| 成人免费福利在线| www.xxxx精品| 精品国产成人在线| 欧美一区二区三区……| 日韩av大片在线| www高清在线视频日韩欧美| 91精品久久久久久久久久另类| 精品视频久久久| 亚洲欧美日韩高清| 国产精品av网站| 98精品在线视频| 欧美激情按摩在线| 国产精品吴梦梦| 亚洲最大成人免费视频| 欧美最猛性xxxxx(亚洲精品)| 亚洲精品v欧美精品v日韩精品| 国产乱肥老妇国产一区二| 日韩av在线高清| 欧美一区二区大胆人体摄影专业网站| 懂色aⅴ精品一区二区三区蜜月| 国产成人精彩在线视频九色| 在线电影欧美日韩一区二区私密| 欧美另类精品xxxx孕妇| 成人激情春色网| 欧美日韩成人免费| 欧美黄色片视频| 欧美国产中文字幕| 97超级碰在线看视频免费在线看| 亚洲香蕉在线观看| 亚洲精品自拍偷拍| 亚洲人成人99网站| 久久综合免费视频影院| 国产一区二区三区在线看| 成人综合网网址| 亚洲国内精品视频| 91精品视频免费观看| 97人人爽人人喊人人模波多| 欧美韩日一区二区| 欧美性视频在线| 亚洲国产精品久久久| 国产精品免费一区二区三区都可以| 欧美一区视频在线| 日本欧美国产在线| 亚洲色图五月天| 国产亚洲精品久久久久动| 国产福利成人在线| 色噜噜狠狠狠综合曰曰曰88av| 国产97在线|日韩| 成人精品一区二区三区| 美女福利精品视频| 最新69国产成人精品视频免费| 国产精品久久久| 久久久久国产视频| 日韩在线视频免费观看| 国产精品人人做人人爽| 国产伦精品一区二区三区精品视频| 91精品视频免费| 欧洲美女免费图片一区| 国产日韩在线精品av| 午夜精品久久17c| 日韩不卡中文字幕| 综合网中文字幕| 欧美最猛性xxxx| 国外色69视频在线观看| 国产这里只有精品| 亚洲福利在线看| 欧美成人手机在线| 综合国产在线观看| 欧美伊久线香蕉线新在线| 精品精品国产国产自在线| 91大神福利视频在线| 在线播放日韩av| 91夜夜未满十八勿入爽爽影院| 91wwwcom在线观看| 一区二区三区国产在线观看| 日韩性xxxx爱| 欧美一区亚洲一区| 最新亚洲国产精品| 亚洲国产又黄又爽女人高潮的| 国产主播喷水一区二区| 国产精品视频中文字幕91| 68精品国产免费久久久久久婷婷| 欧美性xxxxxxx| 中文字幕日韩av综合精品| 91精品国产91久久久久久久久| 日韩a**站在线观看| 欧美日韩在线影院| 美女福利视频一区| 国产成人精品亚洲精品| 91精品啪在线观看麻豆免费| 亚洲天堂av在线免费| 亚洲一区二区久久| 国内外成人免费激情在线视频网站| 国产日韩换脸av一区在线观看| 欧美在线视频一二三| 亚洲专区国产精品| 久久影院在线观看| 欧美丝袜第一区| 欧美日韩中文字幕在线视频| 69视频在线免费观看| 国产日本欧美视频| 欧美黑人巨大精品一区二区| 国产精品久久久久久久久借妻| 精品亚洲精品福利线在观看| 久久久久久美女| 亚洲欧美国产日韩天堂区| 成人信息集中地欧美| 亚洲aⅴ日韩av电影在线观看| 亚洲日韩中文字幕| 欧美亚洲日本黄色| 亚洲成年人在线播放| yellow中文字幕久久| 国产成人亚洲综合91精品| 成人精品aaaa网站| 亚洲国产第一页| 成人性教育视频在线观看| 日韩中文字幕免费视频| 日av在线播放中文不卡| 91在线免费视频| 91久久精品国产| 成人免费网站在线看| 久久久久久久久久久久久久久久久久av| 久久伊人精品视频| 欧美不卡视频一区发布| 国产精品9999| 久久久久久久久久国产精品|