javascript写的半透明菜单
//---------------menu.js---(将之保存成menu.js)-----------------
var lastSubMenu=""
var MenuTags="";
var toolBarTarget="_self";
var _MenuSarator="";
function showSubMenu(obj,offsetleft)
{
ToolbarMenu=obj;
for (var i=0;i<spMenu.length;i++){
if (obj==spMenu[i]){
if (lastSubMenu!="") lastSubMenu.style.display="none";
lastSubMenu=spSubMenu[i];
if(lastSubMenu.innerHTML!=""){
lastSubMenu.style.top=obj.style.top+17;
lastSubMenu.style.left=-obj.style.left + 10;
lastSubMenu.style.backgroundColor=ToolbarMenu.style.backgroundColor;
lastSubMenu.style.display="";
y=obj.style.top+obj.style.offsetHeight;
x=obj.style.left+obj.style.offsetHeight;
hideElement("select",lastSubMenu)
}
}
}
event.cancelBubble=true;
}
function hideSubMenu(obj){
if (lastSubMenu!="") lastSubMenu.style.display="none";
showElement("select",lastSubMenu)
}
function addMenu(MenuDisplayStr, MenuURLStr)
{
if (MenuTags!=""){;//close with </span>
MenuTags+="</span></span>"
MenuTags+='<span id=spMenu>';
}else{
MenuTags+='<span id=spMenu align="center">'
}
MenuTags+='&nbsp;'+_MenuSarator+'<a href="'+MenuURLStr+'" class=menu target="'+toolBarTarget+'">'+MenuDisplayStr+'</a><span id=spSubMenu STYLE="display:none;">';
//if (_MenuSarator=="")_MenuSarator="|";
}
function addSubMenu(SubMenuStr, SubMenuURLStr)
{
MenuTags+='<nobr><a id=spSubMenuItem href="'+SubMenuURLStr+'" class=menusub target="'+toolBarTarget+'" style="width:100%">'+SubMenuStr+'</a></nobr><br>' ;
}
function begMenu(){
MenuTags=""  
}
function endMenu(){
MenuTags+="</span></span>"
//make spMenulength>0
MenuTags+='<span id=spMenu style="display:none;" ><span id=spSubMenu STYLE="display:none;"></span></span>'
document.write(MenuTags);
}
function ylhome(){
window.navigate('/home.asp');
}
function addMenuSys(ptypeid,menuname,menuurl)
{
if(ptypeid==0){
addMenu(menuname,menuurl);
}else
{
addSubMenu(menuname,menuurl);
}
}function hideElement(elmID,objMenu)
{
var objMenuLeft   = objMenu.offsetLeft;
var objMenuTop    = objMenu.offsetTop;
var objMenuWidth  = objMenu.offsetWidth;
var objMenuHeight    = objMenu.offsetHeight;
var objMenuParent = objMenu.offsetParent;
while (objMenuParent.tagName.toUpperCase() != "BODY")
{
objMenuLeft  += objMenuParent.offsetLeft;
objMenuTop   += objMenuParent.offsetTop;
objMenuParent = objMenuParent.offsetParent;
}
for (i = 0; i < document.all.tags(elmID).length; i++)
{
obj = document.all.tags(elmID)[i];
if (! obj || ! obj.offsetParent)
continue;
// Find the element's offsetTop and offsetLeft relative to the BODY tag.
var objLeft   = obj.offsetLeft;
var objTop    = obj.offsetTop;
var objWidth   = obj.offsetWidth;
var objHeight    = obj.offsetHeight;
var objParent = obj.offsetParent;
while (objParent.tagName.toUpperCase() != "BODY")
{
objLeft  += objParent.offsetLeft;
objTop   += objParent.offsetTop;
objParent = objParent.offsetParent;
}
if (objTop>(objMenuTop+objMenuHeight))
;
else if (objLeft>(objMenuLeft+objMenuWidth))
;
else if ((objLeft+objWidth)<objMenuLeft)
;
else
{
if (obj.style.visibility!=null)
obj.oldvisibility=obj.style.visibility;
else
obj.oldvisibility="";

obj.style.visibility = "hidden";
}

}
}
function showElement(elmID,objMenu)
{
for (i = 0; i < document.all.tags(elmID).length; i++)
{
obj = document.all.tags(elmID)[i];
if (! obj || ! obj.offsetParent)
continue;
if (obj.oldvisibility!=null)
obj.style.visibility = obj.oldvisibility;
}
}//------------------------------------------------------//顺便给段调用的代码你参考参考
//----------------------------------------------------------
    Private Sub SetMenuName()
        Dim Menu As String
        Menu = "<SCRIPT language=javascript src='menu/menu.js'></SCRIPT> " & _
                  "<SCRIPT language=javascript event=onmouseover for=spMenu> " & _
                    "showSubMenu(this ); " & _
                 "     </SCRIPT>" & _
                 "    <SCRIPT language=javascript event=onmouseout for=spMenu> " & _
                "hideSubMenu(this); " & _
                 "     </SCRIPT>" & _
                  "    <SCRIPT language=javascript> " & _
                    "var errcode=''; " & _
                    "     </SCRIPT>" & _
                    "      <SCRIPT language=javascript event=onclick for=hrOpenChildWin> " & _
                    " return OpenChildWin(this); " & _
                        "</SCRIPT>" & _
                        " <LINK href='menu/menu.css' type=text/css rel=stylesheet> " & _
                    "<TABLE cellSpacing=0 cellPadding=1 height=20   bordercolor='black' width='100%'  align=center border=1> " & _
                    "<TBODY> " & _
                    "<TR>"
                               
        Dim i, j, MenuCount As Integer
        Dim SubMenuId As String
            Me.DataSet_JCXT_index.T_Submenu.Clear()
            Me.SqlDaSubMenu.SelectCommand.Parameters.Item("@Menuid").Value = Me.ViewState.Item("Menu")
        Me.SqlDaSubMenu.Fill(Me.DataSet_JCXT_index, "T_Submenu")
        Menu += "<TD vAlign=center align=middle  background = 'img/top_bk.gif' >  <SCRIPT language=javascript>begMenu();"
        Menu += "addMenuSys(0,'首页','Index.aspx');"
        Menu += "endMenu();</SCRIPT> </TD>"        With Me.DataSet_JCXT_index.T_Submenu
            For i = 0 To .Rows.Count - 1
                Menu += "<TD vAlign=center align=middle  background = 'img/top_bk.gif' >  <SCRIPT language=javascript>begMenu();"
                SubMenuId = .Item(i).Item("SubMenuId")
                Menu += "addMenuSys(0,'" & .Item(i).Item("MenuName") & " ','" & .Item(i).Item("Url") & "');"
                Me.DataSet_JCXT_index.T_SubMenuItem.Clear()
                Me.SqlDASumMenuItem.SelectCommand.Parameters.Item("@SubMenuid").Value = SubMenuId
                Me.SqlDASumMenuItem.Fill(Me.DataSet_JCXT_index, "T_SubmenuItem")
                With Me.DataSet_JCXT_index.T_SubMenuItem
                    For j = 0 To .Rows.Count - 1
                        Menu += "addMenuSys(1,'" & .Item(j).Item("MenuName") & " ','" & .Item(j).Item("Url") & "');"
                    Next
                End With
                Menu += "endMenu();</SCRIPT> </TD>"
            Next
        End With
        Menu += "  </TR></TBODY></TABLE>"
        Me.TD_MenuItem.InnerHtml = Menu    End Sub
//----------------------------------------------------------------------