关于树状菜单 |
|
自己写的树状菜单,感觉不错,给大家看看,我正在写一个更鲁棒的,过一段时间传上来。
//menu.js function CreateMenu(menuname,menutext,imagetag) { document.write("<div id="+menuname+"><table BORDER=0 CELLSPACING=0 CELLPADDING=0>") switch(imagetag) { case 1: imgtag = "images\\topminus.gif" break; case 2: imgtag = "images\\minus.gif" break; case 3: imgtag = "images\\endminus.gif" break; default: imagetag = "images\\topminus.gif" break; } imgname = "img"+menuname picname = "pic"+menuname document.write("<TR><TD WIDTH=20><A HREF='javascript:ChangeMenu(\""+menuname+"\","+imagetag+")'><IMG id="+imgname+" SRC="+imgtag+" BORDER=0></A></TD>") document.write("<TD WIDTH=20><IMG id="+picname+" SRC='images\\cf.gif' BORDER=0></TD>") document.write("<TD COLSPAN=4><NOBR><FONT SIZE=-1 FACE='Arial, Helvetica'>"+menutext+"</FONT></TD></TR>") document.write("</table></div>") } function CreateSubMenu(menuname,submenuname,submenunum,submenuarray,sublays,menutag) { switch(menutag) { case 1: eval('document.all.img'+menuname+'.src="images/topplus.gif"') break; case 2: eval('document.all.img'+menuname+'.src="images/plus.gif"') break; case 3: eval('document.all.img'+menuname+'.src="images/endplus.gif"') break; default: eval('document.all.img'+menuname+'.src="images/topplus.gif"') break; } document.write("<div id="+submenuname+"><table BORDER=0 CELLSPACING=0 CELLPADDING=0>") AddSubMenu(submenunum,submenuarray,sublays,menutag) document.write("</table></div>") } function AddSubMenu(submenunum,submenuarray,sublays,menutag) { for (i=0;i<submenunum;i++) { document.write("<TR><TD></TD>") for(j=0;j<sublays;j++) if (menutag == 3) document.write("<TD WIDTH=20></TD>") else document.write("<TD WIDTH=20><IMG SRC='images\\blankdots.gif' BORDER=0></TD>") if (i == submenunum -1) imgtag = "images\\enddots.gif" else imgtag = "images\\dots.gif" document.write("<TD WIDTH=20><IMG SRC="+imgtag+" BORDER=0></TD>") document.write("<TD WIDTH=20><IMG SRC='images\\doc.gif' BORDER=0></TD>") document.write("<TD COLSPAN=4><NOBR><FONT SIZE=-1 FACE='Arial, Helvetica'>"+submenuarray[i]+"</FONT></TD></TR>") } } function ChangeMenu(menutag,imagetag) { divroll = document.all.tags("DIV"); for(i=0; i<divroll.length; i++) { whichEl = divroll(i); idtag = "Sub"+menutag if (whichEl.id == idtag) { if (whichEl.style.display == "none") { switch(imagetag) { case 1: eval('document.all.img'+menutag+'.src="images/topminus.gif"') break; case 2: eval('document.all.img'+menutag+'.src="images/minus.gif"') break; case 3: eval('document.all.img'+menutag+'.src="images/endminus.gif"') break; default: eval('document.all.img'+menutag+'.src="images/topminus.gif"') break; } whichEl.style.display = "block"; eval('document.all.pic'+menutag+'.src="images/of.gif"') } else { switch(imagetag) { case 1: eval('document.all.img'+menutag+'.src="images/topplus.gif"') break; case 2: eval('document.all.img'+menutag+'.src="images/plus.gif"') break; case 3: eval('document.all.img'+menutag+'.src="images/endplus.gif"') break; default: eval('document.all.img'+menutag+'.src="images/topplus.gif"') break; } whichEl.style.display = "none"; eval('document.all.pic'+menutag+'.src="images/cf.gif"') } } } } function InitMenu() { CreateMenu("Menu","This is Menu",1) //1. menu name 2. img number for the menu( 1-stand for first; 3-stand for end; others is 2) menuarray = new Array('<A class=A1 href="test.htm">submenu1</A>','<A class=A1 href="test.htm">submenu2</A>','<A class=A1 href="test.htm">submenu3</A>') CreateSubMenu("Menu","SubMenu",3,menuarray,1,1) ChangeMenu("Menu",1) CreateMenu("Menu1","This is Menu1",2) menuarray = new Array('<A href="test.htm">submenu1</A>','<A class=A1 href="test.htm">submenu2</A>','<A href="test.htm">submenu3</A>','<A href="test.htm">submenu4</A>') //Menu array CreateSubMenu("Menu1","SubMenu1",4,menuarray,1,2) //1. menu name 2. layer name 3. submenu number 4. submenu name array 5. layer number(no use now) 6.show image num ChangeMenu("Menu1",2) // first time hide the layer CreateMenu("Menu2","This is Menu2",2) CreateMenu("Menu3","This is Menu3",3) menuarray = new Array('<A href="test.htm">submenu1</A>','<A class=A1 href="test.htm">submenu2</A>','<A class=A1 href="test.htm">submenu3</A>') CreateSubMenu("Menu3","SubMenu3",3,menuarray,1,3) ChangeMenu("Menu3",3) } InitMenu() //menu.htm <html> <STYLE TYPE='text/css'> <!-- .A1 {text-decoration: none; color: #000000} --> </STYLE> <body> <script language="JavaScript" src="menu.js"></script> </div> </body> </html> 所有的图片可由 http://casperlw.51.net/images.zip 下载,并建同名目录. |