用js实现漂亮的下拉菜单 |
|
前两天班上要做个班级主页,分给我的任务是个下拉菜单。
以下是我的作品: 首先是个js,命名为mymenu.js,以下是该文件 var itemTitle = new Array(); var itemContent = new Array(); var itemExpand = new Array(); var numItem = 0; var borderSize = 0; var expandId = "expandDiv"; var layerWidth = 300; var layerIndent = 1; var layerHeight = "<br>"; var layerColor = "FFFFFF"; var ns4 = (document.layers)? true:false; var ie4 = (document.all)? true:false; function add_expand(title, content) { itemTitle[numItem] = title; itemContent[numItem] = content; itemExpand[numItem] = 0; numItem++; } function set_closeImage(url) { closeImage = "<img src=" + url + " border=0>"; } function set_openImage(url) { openImage = "<img src=" + url + " border=0>"; } function set_indent(indent) { layerIndent = indent; } function set_indent(height) { layerHeight = height; } function create_expand(width, height, left, top, border, bgcolor) { borderSize = border; layerWidth = width; layerColor = bgcolor; outWidth = width + borderSize; document.writeln('<STYLE>'); document.write('#expandDiv {position:absolute; left:' + left + '; top:' + top + '; width:' + width + '; height:' + height + ';}'); document.writeln('</STYLE>'); document.writeln('<DIV ID="expandDiv">'); document.writeln('<table border=0 cellspacing=8 cellpadding=' + borderSize + ' width=' + layerWidth + '><TR><TD bgcolor=green>'); document.writeln('<table border=0 cellspacing=0 cellpadding=3 width=100% bgcolor=' + layerColor + '><TR><TD>'); for (i = 0; i < numItem; i++) { document.writeln('<a href="javascript:toggle_expand(' + i + '); display_expand()">' + closeImage + itemTitle[i] + '</a><BR>'); } document.writeln('</TD></TR></TABLE></TD></TR></TABLE>'); document.writeln('</DIV>'); } function toggle_expand(num) { itemExpand[num] = itemExpand[num] ? 0 : 1; } function display_expand() { var replaceText = ""; replaceText += '<table border=0 cellspacing=8 cellpadding=' + borderSize + ' width=' + layerWidth + '><TR><TD bgcolor=green>'; replaceText += '<table border=0 cellspacing=0 cellpadding=3 width=100% bgcolor=' + layerColor + '><TR><TD>'; for (i = 0; i < numItem; i++) { if (itemExpand[i] == 1) { replaceText += "<a href=\"javascript:toggle_expand(" + i + "); display_expand()\">" + openImage + itemTitle[i] + "</a>" + layerHeight; replaceText += "<table width=" + layerWidth + "><tr><td>"; for (j = 0; j < layerIndent; j++) { replaceText += " "; } replaceText += "</td><td>"; replaceText += itemContent[i] + "</td></tr></table>"; } else { replaceText += "<a href=\"javascript:toggle_expand(" + i + "); display_expand()\">" + closeImage + itemTitle[i] + "</a><BR>"; } } replaceText += "</TD></TR></TABLE></TD></TR></TABLE>"; if (ns4) { var lyr = document.layers[expandId].document; lyr.open(); lyr.writeln(replaceText); lyr.close(); } else { document.all[expandId].innerHTML = replaceText; } } —————————————————————————————————————————————————————— 然后是需要插入html的<head></head>中的script脚本,如下: <SCRIPT src ="mymenu.js"></SCRIPT> <SCRIPT> arrow = "<img src=line.gif border=0> " content = arrow + "<A href=../a.htm>次菜单名1</A><BR>" + arrow + "<A href=../b.htm>次菜单名2</A><BR>"; add_expand("主菜单名1", content); content = arrow + "<A href=../c.htm>次菜单名1</A><BR>" + arrow + "<A href=../d.htm>次菜单名2</A><BR>" + arrow + "<A href=../e.htm>次菜单名3</A><BR>" + arrow + "<A href=../f.htm>次菜单名4</A><BR>" + arrow + "<A href=../g.htm>次菜单名5</A><BR>"; add_expand("主菜单名2", content); set_closeImage("close.gif"); set_openImage("open.gif"); </SCRIPT> 说明:你只需要修改这个脚本就可以添加菜单项了!gif图片是表示菜单的状态的,你可以自己做,也可以用windows里面现成的 图片! ———————————————————————————————————————————————————————— 第三步需要在html文件的<body></body>中插入 <SCRIPT> create_expand(320, 250, 0, 0, 0, "#FFFFFF") </SCRIPT> 说明:create_expand(宽, 高, 左边距, 上边距, 边宽, 背景色) _________________________________________________________________________________________________________ 第四步就是测试了,没问题的,我都已经测试过了!快快用吧! |