日期:2014-05-16  浏览次数:20330 次

下拉菜单问题?伸下来的菜单连接不了,现在就却这个项目就搞定了。谢谢大虾们。。
<!--使用层做下拉菜单或者漂浮图片的话,最大的问题就是会被输入框等挡住,更别说框架,所以现在比较流行用window.createPopup();的说,它可以在页面所有元素之上,不存在被谁遮挡的问题。

下面是刚写的一个简单的下拉菜单。代码很简单,很容易看懂,所以修改也方便。-->

<script   language= "JavaScript "   type= "text/JavaScript ">
//首先定义两个数组,一个是菜单文字,一个是链接
var   MenuText   =   new   Array(3);
var   MenuEven   =   new   Array(3);
MenuText[1]   =   [ "菜单11 ", "菜单12 ", "菜单13 "];
MenuText[2]   =   [ "菜单21 ", "菜单21 "];
MenuText[3]   =   [ "菜单31 ", "菜单321 ", "菜单33 "];

MenuEven[1]   =   [ "http://www.hao123.com ", "url12 ", "url13 "];
MenuEven[2]   =   [ "url21 ", "url22 "];
MenuEven[3]   =   [ "url31 ", "url32 ", "url33 "];

//初始化一个oPopup对象

var   oPopup   =   window.createPopup();

//这两个是获得表格绝对位置的方法,很有用的说
function   getLeftIE(x,m)   {
var   dx=0;
if   (x.tagName== "TD "){
dx=x.offsetLeft;
}
else   if   (x.tagName== "TABLE ")   {
dx=x.offsetLeft;
if   (m)   {   dx+=(x.cellPadding!= " "?parseInt(x.cellPadding):2);   m=false;   }
}
return   dx+(x.parentElement.tagName== "BODY "?0:getLeftIE(x.parentElement,m));
}
function   getTopIE(x,m)   {
var   dy=0;
if   (x.tagName== "TR "){
dy=x.offsetTop;
}
else   if   (x.tagName== "TABLE ")   {
dy=x.offsetTop;
if   (m)   {   dy+=(x.cellPadding!= " "?parseInt(x.cellPadding):2);   m=false;   }
}
return   dy+(x.parentElement.tagName== "BODY "?0:getTopIE(x.parentElement,m));
}

//显示菜单
function   ButtonClick(node,t)
{  
//首先得到鼠标所在的表格的位置
var   left   =   getLeftIE(node,true)+8;  
var   top   =   getTopIE(node,true)+18;
//定义打开的oPopup的宽度,高度
var   width   =   90;
var   height   =   MenuText[t].length*20;  
//清空oPopup的内容,否则每次调用都只会在后面接着写
oPopup.document.body.innerHTML   =   " ";
var   oPopBody   =   oPopup.document.body;
oPopup.show(left,top,   width,   height,   document.body);  
oPopup.document.open;
//让oPopup在鼠标离开时自动隐藏。
oPopup.document.write( " <body   leftmargin=0   topmargin=0   scroll=no   style= 'border   :   0   px; '   onmouseover=clearTimeout(parent.popt);   onmouseout=parent.popt=setTimeout( 'parent.oPopup.hide() ',10);> ");

//用document.write()写菜单内容
oPopup.document.write( " <table   width=100%   height=100%   style= 'border-collapse   :   collapse; '> ");
for(var   i=0;i <MenuText[t].length;i++)
{
oPopup.document.write( " <tr> <td   background= 'image/topbg.gif '   bgcolor=#cccccc   style= 'border-top   :   #cccccc   1px   solid;border-bottom   :   #666666   1px   solid;border-left   :   #cccccc   1px   solid;border-right   :   #666666   1px   solid;mouse   :   hand;   font-size   :   12px;   color:#000000;text-align   :   left;vertical-align   :   center;CURSOR:   ha