<title>网页特效 js封装无限级下拉树形菜单 站长特效网</title>
<style type="text/css">
*{ margin:0; padding:0;list-style:none;}
body { margin:20px;}
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(/img/user_20110112zzjs_net.gif) 5px 10px no-repeat;}
#nav.dyn li.open{ background:url(/img/user_20110112zzjs_net.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;
}//欢迎来到站长特效网,我们的网址是www.zzjs..net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
return (tempObj.nodeType == 1) ? tempObj : false;
},
firstSibling: function(node) {
var tempObj = node.parentNode.firstChild;
while (tempObj.nodeType != 1 && tempObj.nextSibling != null) {
tempObj = tempObj.nextSibling;
}//欢迎来到站长特效.网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
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;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长 ,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
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;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,z本站收集大量高质量js代码,还有许多广告代码下载。
} 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;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下z载。
},
getKey: function(e) {
if (window.event) {
var key = window.event.keyCode;
} else if (e) {
var key = e.keyCode;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还z有许多广告代码下载。
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;
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,z本站收集大量高质量js代码,还有许多广告代码下载。
if (e && e.stopPropagation) {
e.stopPropagation();
}
},
stopDefault: function(e) {
if (window.event && window.event.returnValue) {
window.event.returnValue = false;
}//欢迎来到站长特z效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
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();
}//欢迎来到站长特效网,我们的网址是www. zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
},
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;
}//欢迎来到站长特效网,我们的网址是ww w.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
},
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; }
}//欢迎来到站z长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
return found;
break;
}//欢迎来到站长特z效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
},
safariClickFix: function() {
return false;
}
}//欢迎来到站长z特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
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);
}
}//欢迎来到站长特效网,我们的网址是www.zzjs.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
DOMhelp.addEvent(window, ‘load‘, sn.init, false);
-->
</script>
<a href="http://www.zzjs.net/">站长特效网</a>,以质量为核心,以实用为目的,打造一流网页特效站!zzjs.net,站长js特效。<hr>
<!--欢迎来到站长特效网,我们网站收集大量高质量js特效,提供许多广告代码下载,网址:www.zzjs.net,[email protected],用.net打造靓站-->
<ul id="nav">
<li><a href="http://www.zzjs.net">站长特效首页</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>
无极限下子菜单
时间: 2024-10-12 15:21:39
无极限下子菜单的相关文章
Java+Selenium——菜单下子菜单哪个子项是否被选中
package rjcs; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Set; import org.openqa.selenium.interactions.Actions; import org.apache.commons.io.FileUtils; import org.o
Java+Selenium——如何点击菜单下子菜单
package rjcs; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Set; import org.openqa.selenium.interactions.Actions; import org.apache.commons.io.FileUtils; import org.o
自定义旋转卫星菜单
经常在应用中看到卫星菜单,自己也学着写了一个继承自ViewGroup的CustomMenu的卫星菜单,不同之处是带了旋转,由于使用了属性动画,所以只支持3.0以上,还有就是界面变的难看了,囧~,上图(gif录制不流畅,见谅啊): 1. 自定义属性: 为了偷懒,只定义两了两个属性,分别表示子菜单的大小和中心那个显示和隐藏按钮的大小. <declare-styleable name="CustomMenu"> <attr name="itemSize"
【开发技巧系列】绿色程序添加到右键菜单
1.运行regedit命令打开注册表管理器2.找到右键项目注册表“HKEY_CLASSES_ROOT”旗下子菜单作用分别为:HKEY_CLASSES_ROOT\*\shell 对任意文件单机右键弹出的菜单的菜单项HKEY_CLASSES_ROOT\folder\shell 对一般文件夹和系统文件(文件夹和驱动器)的右键弹出菜单都起作用HKEY_CLASSES_ROOT\directory\shell 对一般文件夹(仅文件夹)右键点击菜单中弹出的部分内容HKEY_
jQuery/CSS3类似阿里巴巴的商品导航菜单实现教程
有两天没发表文章了,今天来说说利用jQuery和CSS3制作一款类似阿里巴巴左侧商品菜单导航,这款菜单看起来非常大气,可以展示非常多的产品类目,如果你在设计电子商务网站,不妨可以拿来参考,一下是效果图: 我们也可以到这里来查看这款菜单的DEMO演示. 接下来还是分析一下源代码,源码由HTML.CSS和jQuery组成,先来看看HTML,东西很多,但结构非常简单: <div class="sidebar"> <div class="sidebar_top si
把程序添加到右键菜单
1.运行regedit命令打开注册表管理器2.找到右键项目注册表“HKEY_CLASSES_ROOT”旗下子菜单作用分别为:HKEY_CLASSES_ROOT\*\shell 对任意文件单机右键弹出的菜单的菜单项HKEY_CLASSES_ROOT\folder\shell 对一般文件夹和系统文件(文件夹和驱动器)的右键弹出菜单都起作用HKEY_CLASSES_ROOT\directory\shell 对一般文件夹(仅文件夹)右键点击菜单中弹出的部分内容HKEY_
利用CSS制作下拉菜单
利用CSS制作下拉菜单 1.定义一个div,给div一个id或class,给div一个样式. eg:<div id="menu"></div> /*css #menu{ width:1024px; //给div定义一个宽度 height:40px; //给div定义一个高度 margin:0 auto; //让div居中显示 background-color:#eee; //给div一个背景颜色 } */ 2.制作下拉菜单所需的无序列表(ul). eg:<
jQuery 三级菜单
在写这个的时候,首先要捋顺思路.点一个菜单的时候,其他的要闭合,点一级菜单的时候,二三级菜单要闭合,等等. 大致代码如下: <body> <aside> <ul class="one"> <li> <a href="#" class="a">目录A</a> <ul class="two" style="display: none"
通达OA实施的小总结
1.表格中带有复选框的单独一行单元格(一行两列 表头在第一列 复选框在第二列),在手机上进行显示时,这一行会把行表头屏蔽掉. 2.日历控件不要用自定义格式,要不部分手机上无法使用.但是有些手机只能进行填写.如果日历控件精确到秒,手机上也只会精确到分. 3.制作发文单的时候,批准审核顺序一般跟着步骤来走,要么顺向由上而下,要么逆向由下而上.标题和收文类型放在第一栏和第二栏的位置. 4.收文处理单的来文编号是来文单位设定的编号.收文编号是收文的文书设定的编号. 5.如果表单设计器中对单元格对齐方式进