<style rel='stylesheet' type='text/css'> BODY { BORDER-BOTTOM:0px; BORDER-LEFT:0px; BORDER-RIGHT:0px; BORDER-TOP:0px; MARGIN:0px } #menu { BACKGROUND:buttonface; BORDER-BOTTOM:buttonface 1px solid; BORDER-LEFT:buttonface 1px solid; BORDER-RIGHT:buttonface 1px solid; BORDER-TOP:buttonface 1px solid; CURSOR:default; LEFT:0px; POSITION:absolute; TOP:0px } #menu .menu { BACKGROUND:buttonface; BORDER-BOTTOM:buttonhighlight 2px outset; BORDER-LEFT:buttonhighlight 2px outset; BORDER-RIGHT:buttonhighlight 2px outset; BORDER-TOP:buttonhighlight 2px outset; POSITION:absolute } #menu TD { FONT:menu; HEIGHT:20px } #menu .root { BORDER-BOTTOM:buttonface 1px solid; BORDER-LEFT:buttonface 1px solid; BORDER-RIGHT:buttonface 1px solid; BORDER-TOP:buttonface 1px solid; MARGIN:6px; PADDING-BOTTOM:1px; PADDING-LEFT:7px; PADDING-RIGHT:7px; PADDING-TOP:1px } #menu .icon { TEXT-ALIGN:center } #menu .disabled { COLOR:buttonshadow } #menu .more { FONT-FAMILY:webdings; TEXT-ALIGN:right; WIDTH:20px } #menu #handle { BORDER-BOTTOM:buttonshadow 1px solid; BORDER-LEFT:buttonhighlight 1px solid; BORDER-RIGHT:buttonshadow 1px solid; BORDER-TOP:buttonhighlight 1px solid; CURSOR:move; MARGIN:0px; PADDING-BOTTOM:0px; PADDING-LEFT:0px; PADDING-RIGHT:0px; PADDING-TOP:0px } #outerDiv { BORDER-BOTTOM:white 2px inset; BORDER-LEFT:white 2px inset; BORDER-RIGHT:white 2px inset; BORDER-TOP:white 2px inset; HEIGHT:90%; OVERFLOW:auto; POSITION:absolute; WIDTH:100%; Z-INDEX: -1 } </style> <script type='text/javascript'> var activeMenu = null; var activeSub = null; var tempEl; var t; var hideWindowedControls = true; var ie5 = (document.getElementsByTagName != null); //////////////////////////////////////////////////////// //If you wan't different colors than default overload these functions... function menuItemHighlight(el) { el.style.background = "highlight"; el.style.color = "highlighttext"; } function menuItemNormal(el) { el.style.background = ""; el.style.color = ""; } function raiseButton(el) { el.style.borderTop = "1 solid buttonhighlight"; el.style.borderLeft = "1 solid buttonhighlight"; el.style.borderBottom = "1 solid buttonshadow"; el.style.borderRight = "1 solid buttonshadow"; el.style.padding = "1"; el.style.paddingLeft = "7"; el.style.paddingRight = "7"; } function normalButton(el) { el.style.border = "1 solid buttonface"; el.style.padding = "1"; el.style.paddingLeft = "7"; el.style.paddingRight = "7"; } function pressedButton(el) { el.style.borderTop = "1 solid buttonshadow"; el.style.paddingTop = "2"; el.style.borderLeft = "1 solid buttonshadow"; el.style.paddingLeft = "8"; el.style.borderBottom = "1 solid buttonhighlight"; el.style.paddingBottom = "0"; el.style.borderRight = "1 solid buttonhighlight"; el.style.paddingRight = "6"; } //...untill here //////////////////////////////////////////////////////// function cleanUpMenuBar() { for (i = 0; i < menu.rows.length; i++) { for (j = 0; j < menu.rows(i).cells.length; j++) { if (menu.rows(i).cells(j).className == "root") { normalButton(menu.rows(i).cells(j)); } } } showWindowedObjects(true); } function getMenuItem(el) { temp = el; while ((temp != null) && (temp.tagName != "TABLE") && (temp.id != "menubar") && (temp.id != "menu") && (temp.id != "handle")) { if ((temp.tagName == "TR") || (temp.className == "root")) el = temp; temp = temp.parentElement; } return el; } function getSub(el) { temp = el; while ((temp != null) && (temp.className != "sub")) { i f(temp.tagName == "TABLE") el = temp; temp = temp.parentElement; } return el; } function menuClick() { if (event.srcElement == null) return; var el = getMenuItem(event.srcElement); if ((el.className != "disabled") && (el.id != "menubar")) { if (el.className == "root") { if (activeMenu) { raiseButton(el); showWindowedObjects(true); } else pressedButton(el); toggleMenu(el); } else if (el.href) { cleanUpMenuBar(); if (activeMenu) toggleMenu(activeMenu.parentElement); if (el.target) window.open(el.href, el.target); else if (document.all.tags("BASE").item(0) != null) window.open(el.href, document.all.tags("BASE").item(0).target); else window.location = el.href; } } window.event.cancelBubble = true; } //////////////////////////////////////////////////////// // Used to hide the menu when clicked elsewhere function Restore() { if (activeMenu) { toggleMenu(activeMenu.parentElement); cleanUpMenuBar(); } } document.onclick = Restore; //////////////////////////////////////////////////////// function menuOver() { if ((event.fromElement == null) || (event.toElement == null) || (event.fromElement == event.toElement)) return; var fromEl = getMenuItem(event.fromElement); var toEl = getMenuItem(event.toElement); if (fromEl == toEl) return; if ((toEl.className != "disabled") && (toEl.id != "menubar")) { if (toEl.className == "root") { if (activeMenu) { if (toEl.menu != activeMenu) { cleanUpMenuBar(); pressedButton(toEl); toggleMenu(toEl); } } else { raiseButton(toEl); } } else { if ((fromEl != toEl) && (toEl.tagName != "TABLE")) { cleanup(toEl.parentElement.parentElement, false); menuItemHighlight(toEl); toEl.parentElement.parentElement.activeItem = toEl; if (toEl.href) window.status = toEl.href; if (toEl.className == "sub") showSubMenu(toEl, true); } } } } function menuOut() { if ((event.fromElement == null) || (event.toElement == null) || (event.fromElement == event.toElement)) return; var fromEl = getMenuItem(event.fromElement); var toEl = getMenuItem(event.toElement); if (fromEl == toEl) return; if (fromEl.className == "root") { if (activeMenu) { if (fromEl.menu != activeMenu) normalButton(fromEl); } else normalButton(fromEl); } else { if ((fromEl.className != "disabled") && (fromEl.id != "menubar")) { if ((fromEl.className == "sub") && (getSub(toEl) == fromEl.subMenu) || (fromEl.subMenu == toEl.parentElement.parentElement)) return; else if ((fromEl.className == "sub")) { cleanup(fromEl.subMenu, true); menuItemNormal(fromEl); } else if ((fromEl != toEl) && (fromEl.tagName != "TABLE")) menuItemNormal(fromEl); window.status = ""; } } } function toggleMenu(el) { if (el.menu == null) el.menu = getChildren(el); if (el.menu == activeMenu) { if (activeSub) menuItemNormal(activeSub.parentElement.parentElement); cleanup(el.menu, true); activeMenu = null; activeSub = null; // showWindowedObjects(true); } else { if (activeMenu) { cleanup(activeMenu, true); hideMenu(activeMenu); } activeMenu = el.menu; var tPos = topPos(el.menu) + menu.offsetHeight; if ((document.body.offsetHeight - tPos) >= el.menu.offsetHeight) { el.menu.style.pixelTop = (ie5) ? el.offsetHeight + 1 : menu.offsetHeight - el.offsetTop - 2; dir = 2; } else { el.menu.style.pixelTop = (ie5) ? el.offsetTop - el.menu.offsetHeight - 1 : el.offsetTop - el.menu.offsetHeight + 2; dir = 8; } el.menu.style.pixelLeft = (ie5) ? el.offsetLeft - 2 : el.offsetLeft; show(el.menu, dir); showWindowedObjects(false); } } function showSubMenu(el, show) { var dir = 2; temp = el; list = el.children.tags("TD"); el = list[list.length - 1]; if (el.menu == null) el.menu = getChildren(el); temp.subMenu = el.menu; if ((el.menu != activeMenu) && (show)) { activeSub = el.menu; var lPos = leftPos(el.menu); if ((document.body.offsetWidth - lPos) >= el.menu.offsetWidth) { el.menu.style.left = (ie5) ? el.parentNode.offsetWidth : el.offsetParent.offsetWidth; dir = 6; } else { el.menu.style.left = -el.menu.offsetWidth + 3; dir = 4; } var tPos = (ie5) ? topPos(el.menu) + el.offsetTop : topPos(el.menu) + el.offsetParent.offsetTop; // + el.menu.offsetTop; if ((document.body.offsetHeight - tPos) >= el.menu.offsetHeight) el.menu.style.top = (ie5) ? el.offsetTop - 4 : el.offsetParent.offsetTop - 2; else el.menu.style.top = (ie5) ? el.offsetTop + el.offsetHeight - el.menu.offsetHeight : el.offsetParent.offsetTop + el.offsetParent.offsetHeight - el.menu.offsetHeight + 2; showSub(el.menu, dir); } else { show(el.menu, dir); activeSub = null; } } //////////////////////////////////////////////////////// //The following two functions are needed to calculate the position function topPos(el) { var temp = el; var y = 0; while (temp.id != "menu") { temp = temp.offsetParent; y += temp.offsetTop; } return y; } function leftPos(el) { var temp = el; var x = 0; while (temp.id != "menu") { temp = temp.offsetParent; x += temp.offsetLeft; } return x + el.offsetParent.offsetWidth; } //////////////////////////////////////////////////////// function show(el, dir) { if (typeof (fade) == "function") fade(el, true); else if (typeof (swipe) == "function") { tempElSwipe = el; tempDirSwipe = dir; el.style.visibility = "visible"; el.style.visibility = "hidden"; window.setTimeout("tempSwipe()", 0); // swipe(el, dir); } else el.style.visibility = "visible"; } var tempElSwipe, tempDirSwipe; function tempSwipe() { swipe(tempElSwipe, tempDirSwipe); } function showSub(el, dir) { show(el, dir); // swipe(el, dir); // fade(el, true); // el.style.visibility = "visible"; } function cleanup(menu, hide) { if (menu.activeItem) { //If you've been here before if ((menu.activeItem.className == "sub") && (menu.activeItem.subMenu)) { //The active item has a submenu cleanup(menu.activeItem.subMenu, true); //Clean up the subs as well } menuItemNormal(menu.activeItem); } if (hide) { hideMenu(menu); } } function hideMenu(el) { if (typeof (fade) == "function") { fade(el, false); // window.setTimeout(fadeTimer); } else if (typeof (swipe) == "function") { hideSwipe(el); } else el.style.visibility = "hidden"; } function getChildren(el) { var tList = el.children.tags("TABLE"); return tList[0]; } ///////////////////////////////////////////////////////////////////////////// // The rest is just for the moving/docking var dragObject = null; var dragObjectPos = "top"; var tx; var ty; ///////////////////////////////////////////////////////////////////////////// // Fixing sizes and positions window.onload = fixSize; window.onresize = fixSize; function fixSize() { if (dragObjectPos == "top") { outerDiv.style.top = menu.offsetHeight; outerDiv.style.height = document.body.clientHeight - menu.offsetHeight; } else if (dragObjectPos == "bottom") { outerDiv.style.top = 0; outerDiv.style.height = document.body.clientHeight - menu.offsetHeight; menu.style.top = document.body.clientHeight - menu.offsetHeight; } else { outerDiv.style.top = 0; outerDiv.style.height = document.body.clientHeight; } } ///////////////////////////////////////////////////////////////////////////// function document.onmousedown() { if (window.event.srcElement.id == "handle") { dragObject = document.all[window.event.srcElement.getAttribute("for")]; Restore(); //Hide the menus while moving ty = (window.event.clientY - dragObject.style.pixelTop); window.event.returnValue = false; window.event.cancelBubble = true; } else { dragObject = null; } } function document.onmouseup() { if (dragObject) { dragObject = null; } } function document.onmousemove() { if (dragObject) { if (window.event.clientX >= 0) { if ((window.event.clientY - ty) <= 15) { dragObject.style.border = "0 solid buttonface"; dragObject.style.width = "100%"; dragObject.style.top = 0; dragObject.style.left = 0; dragObjectPos = "top"; fixSize(); } else if ((window.event.clientY - ty) >= document.body.clientHeight - menu.offsetHeight - 15) { dragObject.style.border = "0 solid buttonface"; dragObject.style.width = "100%"; dragObject.style.top = document.body.clientHeight - menu.offsetHeight; dragObject.style.left = 0; dragObjectPos = "bottom"; fixSize(); } else { dragObject.style.width = "10px"; dragObject.style.left = window.event.clientX; dragObject.style.top = window.event.clientY - ty; dragObject.style.border = "2px outset white"; dragObjectPos = "float"; fixSize(); } } else { dragObject.style.border = ""; dragObject.style.left = "0"; dragObject.style.top = "0"; } window.event.returnValue = false; window.event.cancelBubble = true; } } //This function si used for hiding windowed controls because they interfere with the menus function showWindowedObjects(show) { if (hideWindowedControls) { var windowedObjectTags = new Array("Select", "IFRAME", "OBJECT", "APPLET", "EMBED"); var windowedObjects = new Array(); var j = 0; for (var i = 0; i < windowedObjectTags.length; i++) { var tmpTags = document.all.tags(windowedObjectTags[i]); if (tmpTags.length > 0) { for (var k = 0; k < tmpTags.length; k++) { windowedObjects[j++] = tmpTags[k]; } } } for (var i = 0; i < windowedObjects.length; i++) { if (!show) windowedObjects[i].visBackup = (windowedObjects[i].style.visibility == null) ? "visible" : windowedObjects[i].style.visibility; windowedObjects[i].style.visibility = (show) ? windowedObjects[i].visBackup : "hidden"; } } } </script> <table cellspacing='1' id='menu' onclick='menuClick()' onmouseout='menuOut()' onmouseover='menuOver()' onselectstart="return false"> <tbody> <tr id='menubar'> <!-- This is a handle. Grab this --> <td class='disabled' style="PADDING-LEFT: 0px; PADDING-RIGHT: 1px"> <div class='disabled' id='handle' style="HEIGHT: 100%; LEFT: 3px; WIDTH: 3px" title="Move me!" for="menu"> </div> </td> <!-- End of handle --> <td class='root'> Demo <table cellspacing='0' class='menu' style="VISIBILITY: hidden"> <tbody> <tr href="javascript:alert('这里可以改成一个链接!')"> <td> <img height='17' src="home.gif" tppabs="http://www.baron.com.cn/javascript/menu/home.gif" width='16'> </td> <td nowrap> You can use icons </td> <td> </td> </tr> <tr class='disabled'> <td> </td> <td nowrap> Disabled menuItems </td> <td> </td> </tr> <tr class='sub'> <td> </td> <td nowrap> Use sub menus </td> <td> <span class='more'>4</span> <table cellspacing='0' class='menu' style="VISIBILITY: hidden"> <tbody> <tr href="javascript:alert('这里可以改成一个链接')"> <td nowrap style="HEIGHT: 20px"> Inside a sub menu </td> </tr> </tbody> </table> </td> </tr> <tr class='disabled'> <td colspan='3'> <hr/> </td> </tr> <tr href="javascript:alert('这里可以改成一个链接')"> <td> </td> <td> Use separators </td> <td> </td> </tr> <tr title="This is really easy"> <td> </td> <td> Use tool tip </td> <td> </td> </tr> </tbody> </table> </td> <!-- Leave this About --> <td class='root'> Help <table cellspacing='0' class='menu' style="VISIBILITY: hidden"> <tbody> <tr class='sub'> <td> <span style="WIDTH: 20px"></span> </td> <td> About </td> <td> <span class='more'>4</span> <table cellspacing='0' class='menu' style="BACKGROUND: black; VISIBILITY: hidden"> <tbody> <tr class='disabled' title=""> <td> <div style="BACKGROUND: black; COLOR: white; FONT-FAMILY: verdana; FONT-SIZE: 12px; MARGIN: 5px; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; PADDING-TOP: 5px; WIDTH: 200px"> <p style="MARGIN : 5px"> 站长<span style="COLOR: tomato; FONT-WEIGHT: bold">晨曦</span> 欢迎你的光临<a href="mailto:xiaoqinglu@263.net" style="COLOR: white">ChengXi</a>. </p> <p style="BACKGROUND: beige; COLOR: red; FONT-SIZE: 9px; MARGIN: 10px"> 这个菜单只适用与IE4.0或更高版本 </p> <p onclick="bugs.style.display=(bugs.style.display=='')?'none':'';" style="CURSOR: hand; TEXT-DECORATION: underline"> 欢迎再次光临! </p> <p id='bugs' style="DISPLAY: none; MARGIN-LEFT: 20px; MARGIN-TOP: -5px"> www.javascript2000.com 是最大的中文javascript站点 并且每日更新,你一定不可错过 </p> <hr style="COLOR: deepskyblue"> <p style="MARGIN-BOTTOM: -10px; MARGIN-LEFT: 33px; MARGIN-TOP: -12px"> <a href="javascript:if(confirm('http://www.javascript2000.com/ /n/n文件并未依 Teleport Pro 取回,因为 它的域或路径超过开始网址中设置的范围。 /n/n你要从服务器上打开它吗?'))window.location='http://www.javascript2000.com/'" tppabs="http://www.javascript2000.com/" style="COLOR: white; FONT-FAMILY: arial black; FONT-SIZE: 30px; FONT-STYLE: italic; TEXT-DECORATION: none" target='_top'>javascript2000</a> </p> </div> </td> </tr> </tbody> </table> </td> <!-- Till here --> </tr> </tbody> </table> </td> <td class='disabled' width="100%"> </td> </tr> </tbody> </table> <div id='outerDiv'></div>