⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dropdown.txt

📁 这是个下拉菜单的JavaScript代码
💻 TXT
字号:
1.	var compatible = (document.getElementsByTagName && document.createElement);
2.	
3.	if (compatible)
4.		document.write('<link rel="stylesheet" href="navstyles.css" />')
5.	
6.	function initNavigation() {
7.		var lists = document.getElementsByTagName('ul');
8.		for (var i=0;i<lists.length;i++) {
9.			if (lists[i].className != 'menutree') continue;
10.			lists[i].onmouseover = navMouseOver;
11.			lists[i].onmouseout = navMouseOut;
12.			var listItems = lists[i].getElementsByTagName('li');
13.			for (var j=0;j<listItems.length;j++) {
14.				var test = listItems[j].getElementsByTagName('ul')[0];
15.				if (test) {
16.					listItems[j].firstChild.onfocus = navMouseOver;
17.					listItems[j].relatedItem = test;
18.				}
19.			}
20.		}
21.	}
22.	
23.	var currentlyOpenedMenus = new Array();
24.	var currentlyFocusedItem;
25.	
26.	function navMouseOver(e) {
27.		var evt = e || window.event;
28.		var evtTarget = evt.target || evt.srcElement;
29.		if (evtTarget.nodeName == 'UL') return;
30.		while (evtTarget.nodeName != 'LI')
31.			evtTarget = evtTarget.parentNode;
32.		foldMenuIn(evtTarget);
33.		if (evtTarget.relatedItem && !evtTarget.relatedItem.opened) {
34.			evtTarget.className = 'highlight';
35.			evtTarget.relatedItem.className = 'foldOut';
36.			evtTarget.relatedItem.opened = true;
37.			currentlyOpenedMenus.push(evtTarget.relatedItem);
38.		}
39.	}
40.	
41.	function navMouseOut(e) {
42.		var evt = e || window.event;
43.		var relatedNode = evt.relatedTarget || evt.toElement;
44.		foldMenuIn(relatedNode);
45.	}
46.	
47.	function foldMenuIn(targetNode) {
48.		if (!targetNode) return;
49.		var newCurrentlyOpenedMenus = new Array();
50.		for (var i=0;i<currentlyOpenedMenus.length;i++) {
51.			if (!containsElement(currentlyOpenedMenus[i],targetNode)) {
52.				currentlyOpenedMenus[i].className = '';
53.				currentlyOpenedMenus[i].parentNode.className = '';
54.				currentlyOpenedMenus[i].opened = false;
55.			}
56.			else
57.				newCurrentlyOpenedMenus.push(currentlyOpenedMenus[i]);
58.		}
59.		currentlyOpenedMenus = newCurrentlyOpenedMenus;
60.	}
61.	
62.	function containsElement(obj1,obj2) {
63.		while (obj2.nodeName != 'HTML') {
64.			if (obj2 == obj1) return true;
65.			obj2 = obj2.parentNode;
66.		}
67.		return false;
68.	}
69.	
70.	addEventSimple(window,"load",initNavigation);
71.	
72.	function addEventSimple(obj,evt,fn) {
73.		if (obj.addEventListener)
74.			obj.addEventListener(evt,fn,false);
75.		else if (obj.attachEvent)
76.			obj.attachEvent('on'+evt,fn);
77.	}
78.	
79.	function removeEventSimple(obj,evt,fn) {
80.		if (obj.removeEventListener)
81.			obj.removeEventListener(evt,fn,false);
82.		else if (obj.detachEvent)
83.			obj.detachEvent('on'+evt,fn);
84.	}
85.	
86.	/** PUSH AND SHIFT FOR IE5 **/
87.	
88.	function Array_push() {
89.		var A_p = 0
90.		for (A_p = 0; A_p < arguments.length; A_p++) {
91.			this[this.length] = arguments[A_p]
92.		}
93.		return this.length
94.	}
95.	
96.	if (typeof Array.prototype.push == "undefined") {
97.		Array.prototype.push = Array_push
98.	}
99.	
100.	function Array_shift() {
101.		var A_s = 0
102.		var response = this[0]
103.		for (A_s = 0; A_s < this.length-1; A_s++) {
104.			this[A_s] = this[A_s + 1]
105.		}
106.		this.length--
107.		return response
108.	}
109.	
110.	if (typeof Array.prototype.shift == "undefined") {
111.		Array.prototype.shift = Array_shift
112.	}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -