我有一个。是从网上弄下来的。改了一点。有些地方我也不是很明白,你看看,改了给我寄一个带注释的[email protected] ----------------------------------------------------- <HTML><HEAD> <SCRIPT src="menu.js"></SCRIPT> <SCRIPT> menuItems = new Array();menuItems[0] = new MItem("url","aaaa","",-1,0,false); menuItems[1] = new MItem("","a1","",0,1,true); menuItems[2] = new MItem("","a2","",0,1,true); menuItems[3] = new MItem("","a3","",0,1,true); menuItems[4] = new MItem("","a4","",0,1,true); menuItems[5] = new MItem("","a5",0,1,true); menuItems[6] = new MItem("","a6","",0,1,true); menuItems[7] = new MItem("","a7","",0,1,true); menuItems[8] = new MItem("","a8","",0,1,true); menuItems[9] = new MItem("","a9","",0,1,true); menuItems[10] = new MItem("","a10","",0,1,true); menuItems[11] = new MItem("","a11","",0,1,true); menuItems[12] = new MItem("","bbbb","",-1,0,false); menuItems[13] = new MItem("","b1","",12,1,true); menuItems[14] = new MItem("","b2","",12,1,true); menuItems[15] = new MItem("","b3","",12,1,true); menuItems[16] = new MItem("","b4","",12,1,true); menuItems[17] = new MItem("","b5","",12,1,true); menuItems[18] = new MItem("","b6","",12,1,true); </SCRIPT> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <META content="MSHTML 5.50.4134.100" name=GENERATOR></HEAD> <BODY bgColor=#ffffff MARGIN="0"> <SCRIPT> InitMenuItems(); document.onselectstart = CancelSelect; function CancelSelect() { event.cancelBubble = true; return false; } </SCRIPT> </body> </html> ----------------------------下面是menu.js---------------------------------------var bV=parseInt(navigator.appVersion); NS4=(document.layers) ? true : false; IE4=((document.all)&&(bV>=4))?true:false; ver4 = (NS4 || IE4) ? true : false; firstInd=0; function MItem(aURL,dispText,helpText,parent,level,isLeaf) { this.aURL = aURL; this.dispText = dispText; this.helpText = helpText; this.parent = parent; this.level = level; this.isLeaf = isLeaf; this.visible = false; this.expanded = false; return this; } function arrange() { if (NS4){ nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height; for (i=firstInd+1; i<document.layers.length; i++) { whichEl = document.layers[i]; if (whichEl.visibility != "hide") { whichEl.pageY = nextY; nextY += whichEl.document.height; } } } } function ShowMenuItem(idx) { menuItems[idx].visible = true; if (IE4) document.all["menu"+idx].style.display="block"; else if (NS4){ document.layers[idx].visibility="show"; } } function HideMenuItem(idx) { menuItems[idx].visible = false; if (IE4) document.all["menu"+idx].style.display="none"; else if (NS4) document.layers[idx].visibility="hide"; } function HighlightMenuItem(idx) { if (IE4){ document.all["menu"+idx].style.color="white"; document.all["menu"+idx].style.backgroundColor="white"; } else if (NS4){ el = document.layers[idx]; el.color="white"; el.bgColor="white"; } } function NormalMenuItem(idx) { if (IE4){ document.all["menu"+idx].style.color="black"; document.all["menu"+idx].style.backgroundColor="white"; } else if (NS4){ el = document.layers[idx]; el.color="50402f"; el.bgColor="#fbeccc"; } }function Expand(idx) { str=""; var i; if (menuItems[idx].isLeaf) return; if (!menuItems[idx].visible) alert("Something goes wrong--expand invisible item"); // Collapse brother parentIdx = menuItems[idx].parent; for (i=0;i<menuItems.length;i++){ if (menuItems[i].parent==parentIdx && menuItems[i].expanded){ if (i<idx) NormalMenuItem(idx); Collapse(i); break; } }
// Expand children for (i=idx+1;i<menuItems.length;i++){ if (menuItems[i].parent==idx){ ShowMenuItem(i); str +="idx=" +i +" "; } if (menuItems[i].expanded) Expand(i); if (menuItems[i].level<=menuItems[idx].level) break; } menuItems[idx].expanded = true; if (IE4){ img = eval("MenuItemImg"+idx) } else if (NS4){ img = document.layers[idx].document.images[0]; } }function Collapse(idx) { var i; if (menuItems[idx].isLeaf) return; for (i=idx+1;i<menuItems.length;i++){ if (menuItems[i].level<=menuItems[idx].level) break; HideMenuItem(i); } menuItems[idx].expanded = false; if (IE4){ img = eval("MenuItemImg"+idx);
} else if (NS4){ img = document.layers[idx].document.images[0];
} } function Toggle(idx) { if (menuItems[idx].expanded) Collapse(idx); else Expand(idx); if (NS4) arrange(); return false; } function InitMenuItems() { var i; strIndent = " "; if (IE4){ for (i=0;i<menuItems.length;i++){ str = "<DIV ID=\"menu"+i+"\" OnMouseOver=\"HighlightMenuItem("+i+")\" OnMouseOut=\"NormalMenuItem("+i+")\""; if (menuItems[i].isLeaf){ str += " CLASS=\"MenuItemIE\" "; for (j=0;j<menuItems[i].level;j++) str += strIndent; str += "<IMG BORDER=0 SRC=\"/img/transparent.gif\" WIDTH=12 HEIGHT=12>"; str += menuItems[i].dispText; } else{ str += " CLASS=\"MenuItemIE2\" "; str += " OnClick=\"Toggle("+i+");\">"; for (j=0;j<menuItems[i].level;j++) str += strIndent; str += "<IMG BORDER=0 NAME=\"MenuItemImg"+i+"\" SRC=\"/img/menuplus.gif\">"; str += menuItems[i].dispText; } str += "</DIV>"; document.write(str); } /* if (document.all["menu0"]){ document.all["menu0"].style.borderTop = "1 solid"; } */ for (i=0;i<menuItems.length;i++){ if (menuItems[i].level==0) ShowMenuItem(i); else HideMenuItem(i); } }else if (NS4){ for (i=0;i<menuItems.length;i++){ str = "<DIV ID=\"menu"+i+"\" CLASS=\"MenuItemNS\">"; if (menuItems[i].isLeaf){ str += "<A HREF=\""+menuItems[i].aURL+"\" OnMouseOver=\"HighlightMenuItem("+i+");\" OnMouseOut=\"NormalMenuItem("+i+");\">"; for (j=0;j<menuItems[i].level;j++) str += strIndent; str += "<IMG BORDER=0 SRC=\"/img/transparent.gif\" WIDTH=12 HEIGHT=12>"; str += "<FONT COLOR=BLACK>"+menuItems[i].dispText+"</FONT></A>\n"; } else{ str += " <A HREF=\"#\" OnMouseOver=\"HighlightMenuItem("+i+");\" OnMouseOut=\"NormalMenuItem("+i+");\" OnClick=\"return Toggle("+i+");\">"; for (j=0;j<menuItems[i].level;j++) str += strIndent; str += "<IMG BORDER=0 NAME=\"MenuItemImg"+i+"\" SRC=\"/img/menuplus.gif\">"; str += "<FONT COLOR=BLACK>"+menuItems[i].dispText+"</FONT></A>\n"; } str += "</DIV>"; document.write(str); } for (i=0;i<menuItems.length;i++){ if (menuItems[i].level==0) ShowMenuItem(i); } arrange(); } }
-----------------------------------------------------
<HTML><HEAD>
<SCRIPT src="menu.js"></SCRIPT>
<SCRIPT>
menuItems = new Array();menuItems[0] = new MItem("url","aaaa","",-1,0,false);
menuItems[1] = new MItem("","a1","",0,1,true);
menuItems[2] = new MItem("","a2","",0,1,true);
menuItems[3] = new MItem("","a3","",0,1,true);
menuItems[4] = new MItem("","a4","",0,1,true);
menuItems[5] = new MItem("","a5",0,1,true);
menuItems[6] = new MItem("","a6","",0,1,true);
menuItems[7] = new MItem("","a7","",0,1,true);
menuItems[8] = new MItem("","a8","",0,1,true);
menuItems[9] = new MItem("","a9","",0,1,true);
menuItems[10] = new MItem("","a10","",0,1,true);
menuItems[11] = new MItem("","a11","",0,1,true);
menuItems[12] = new MItem("","bbbb","",-1,0,false);
menuItems[13] = new MItem("","b1","",12,1,true);
menuItems[14] = new MItem("","b2","",12,1,true);
menuItems[15] = new MItem("","b3","",12,1,true);
menuItems[16] = new MItem("","b4","",12,1,true);
menuItems[17] = new MItem("","b5","",12,1,true);
menuItems[18] = new MItem("","b6","",12,1,true);
</SCRIPT>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 5.50.4134.100" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff MARGIN="0">
<SCRIPT>
InitMenuItems();
document.onselectstart = CancelSelect;
function CancelSelect()
{
event.cancelBubble = true;
return false;
}
</SCRIPT>
</body>
</html>
----------------------------下面是menu.js---------------------------------------var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? true : false;
IE4=((document.all)&&(bV>=4))?true:false;
ver4 = (NS4 || IE4) ? true : false;
firstInd=0;
function MItem(aURL,dispText,helpText,parent,level,isLeaf)
{
this.aURL = aURL;
this.dispText = dispText;
this.helpText = helpText;
this.parent = parent;
this.level = level;
this.isLeaf = isLeaf;
this.visible = false;
this.expanded = false;
return this;
}
function arrange() {
if (NS4){
nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
}
function ShowMenuItem(idx)
{
menuItems[idx].visible = true;
if (IE4)
document.all["menu"+idx].style.display="block";
else if (NS4){
document.layers[idx].visibility="show";
}
}
function HideMenuItem(idx)
{
menuItems[idx].visible = false;
if (IE4) document.all["menu"+idx].style.display="none";
else if (NS4) document.layers[idx].visibility="hide";
}
function HighlightMenuItem(idx)
{
if (IE4){
document.all["menu"+idx].style.color="white";
document.all["menu"+idx].style.backgroundColor="white";
}
else if (NS4){
el = document.layers[idx];
el.color="white";
el.bgColor="white";
}
}
function NormalMenuItem(idx)
{
if (IE4){
document.all["menu"+idx].style.color="black";
document.all["menu"+idx].style.backgroundColor="white";
}
else if (NS4){
el = document.layers[idx];
el.color="50402f";
el.bgColor="#fbeccc";
}
}function Expand(idx)
{
str="";
var i; if (menuItems[idx].isLeaf)
return;
if (!menuItems[idx].visible)
alert("Something goes wrong--expand invisible item"); // Collapse brother
parentIdx = menuItems[idx].parent;
for (i=0;i<menuItems.length;i++){
if (menuItems[i].parent==parentIdx && menuItems[i].expanded){
if (i<idx)
NormalMenuItem(idx);
Collapse(i);
break;
}
}
// Expand children
for (i=idx+1;i<menuItems.length;i++){
if (menuItems[i].parent==idx){
ShowMenuItem(i);
str +="idx=" +i +" ";
}
if (menuItems[i].expanded)
Expand(i);
if (menuItems[i].level<=menuItems[idx].level)
break;
}
menuItems[idx].expanded = true;
if (IE4){
img = eval("MenuItemImg"+idx)
}
else if (NS4){
img = document.layers[idx].document.images[0];
}
}function Collapse(idx)
{
var i;
if (menuItems[idx].isLeaf)
return;
for (i=idx+1;i<menuItems.length;i++){
if (menuItems[i].level<=menuItems[idx].level)
break;
HideMenuItem(i);
}
menuItems[idx].expanded = false;
if (IE4){
img = eval("MenuItemImg"+idx);
}
else if (NS4){
img = document.layers[idx].document.images[0];
}
}
function Toggle(idx)
{
if (menuItems[idx].expanded)
Collapse(idx);
else
Expand(idx);
if (NS4)
arrange();
return false;
}
function InitMenuItems()
{
var i;
strIndent = " ";
if (IE4){
for (i=0;i<menuItems.length;i++){
str = "<DIV ID=\"menu"+i+"\" OnMouseOver=\"HighlightMenuItem("+i+")\" OnMouseOut=\"NormalMenuItem("+i+")\"";
if (menuItems[i].isLeaf){
str += " CLASS=\"MenuItemIE\" ";
for (j=0;j<menuItems[i].level;j++)
str += strIndent;
str += "<IMG BORDER=0 SRC=\"/img/transparent.gif\" WIDTH=12 HEIGHT=12>";
str += menuItems[i].dispText;
}
else{
str += " CLASS=\"MenuItemIE2\" ";
str += " OnClick=\"Toggle("+i+");\">";
for (j=0;j<menuItems[i].level;j++)
str += strIndent;
str += "<IMG BORDER=0 NAME=\"MenuItemImg"+i+"\" SRC=\"/img/menuplus.gif\">";
str += menuItems[i].dispText;
}
str += "</DIV>";
document.write(str);
}
/*
if (document.all["menu0"]){
document.all["menu0"].style.borderTop = "1 solid";
}
*/
for (i=0;i<menuItems.length;i++){
if (menuItems[i].level==0)
ShowMenuItem(i);
else
HideMenuItem(i);
}
}else if (NS4){
for (i=0;i<menuItems.length;i++){
str = "<DIV ID=\"menu"+i+"\" CLASS=\"MenuItemNS\">";
if (menuItems[i].isLeaf){
str += "<A HREF=\""+menuItems[i].aURL+"\" OnMouseOver=\"HighlightMenuItem("+i+");\" OnMouseOut=\"NormalMenuItem("+i+");\">";
for (j=0;j<menuItems[i].level;j++)
str += strIndent;
str += "<IMG BORDER=0 SRC=\"/img/transparent.gif\" WIDTH=12 HEIGHT=12>";
str += "<FONT COLOR=BLACK>"+menuItems[i].dispText+"</FONT></A>\n";
}
else{
str += " <A HREF=\"#\" OnMouseOver=\"HighlightMenuItem("+i+");\" OnMouseOut=\"NormalMenuItem("+i+");\" OnClick=\"return Toggle("+i+");\">";
for (j=0;j<menuItems[i].level;j++)
str += strIndent;
str += "<IMG BORDER=0 NAME=\"MenuItemImg"+i+"\" SRC=\"/img/menuplus.gif\">";
str += "<FONT COLOR=BLACK>"+menuItems[i].dispText+"</FONT></A>\n";
}
str += "</DIV>";
document.write(str);
}
for (i=0;i<menuItems.length;i++){
if (menuItems[i].level==0)
ShowMenuItem(i);
}
arrange();
}
}