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+=' '+_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
//----------------------------------------------------------------------
//---------------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+=' '+_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
//----------------------------------------------------------------------
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货