var menuOffX=0 //菜单距连接文字最左端距离
var menuOffY=20 //菜单距连接文字顶端距离var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all/**
* e ------ window.event
* vmenu --- 菜单中显示内容
* mod ----- 是否调整纵坐标位置
*/
function showmenu(e,vmenu,mod){
which=vmenu // 保存菜单对象中的内容,这个应该是在其它地方生成的. menuobj=document.getElementById("popmenu") //取得弹出菜单对象
menuobj.thestyle=menuobj.style //以下为保存弹出菜单的信息
menuobj.innerHTML=which
menuobj.contentwidth=menuobj.offsetWidth //计算菜单的高度并保存
eventX=e.clientX
eventY=e.clientY
var rightedge=document.body.clientWidth-eventX //计算菜单左边缘到浏览器窗口右边缘的距离
var bottomedge=document.body.clientHeight-eventY //计算菜单上边缘到浏览器窗口下边缘的距离
if (rightedge < menuobj.contentwidth) // 判断菜单到浏览器窗口右边距离是否小于菜单宽度,
// 即菜单是否会显示到窗口之外,被浏览器窗口遮盖
// 如果宽度不够,调整菜单横坐标
menuobj.thestyle.left=document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX
else
// 如果宽度足够,根据不同的浏览器纵坐标
// 下面的写法比较简练,从可读性方面的考虑,一般都会推荐使用if..else语句来做.
menuobj.thestyle.left=ie4? ie_x(event.srcElement)+menuOffX : ns6? window.pageXOffset+eventX : eventX
if (bottomedge < menuobj.contentheight&&mod!=0) // 判断到窗口下侧的距离是否小于菜单的高度
// 以及是否需要调查菜单的纵坐标 // 调整菜单纵坐标
menuobj.thestyle.top=document.body.scrollTop+eventY-menuobj.contentheight-event.offsetY+menuOffY-23
else
//
menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
menuobj.thestyle.visibility="visible" // 显示菜单
}
var menuOffY=20 //菜单距连接文字顶端距离var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all/**
* e ------ window.event
* vmenu --- 菜单中显示内容
* mod ----- 是否调整纵坐标位置
*/
function showmenu(e,vmenu,mod){
which=vmenu // 保存菜单对象中的内容,这个应该是在其它地方生成的. menuobj=document.getElementById("popmenu") //取得弹出菜单对象
menuobj.thestyle=menuobj.style //以下为保存弹出菜单的信息
menuobj.innerHTML=which
menuobj.contentwidth=menuobj.offsetWidth //计算菜单的高度并保存
eventX=e.clientX
eventY=e.clientY
var rightedge=document.body.clientWidth-eventX //计算菜单左边缘到浏览器窗口右边缘的距离
var bottomedge=document.body.clientHeight-eventY //计算菜单上边缘到浏览器窗口下边缘的距离
if (rightedge < menuobj.contentwidth) // 判断菜单到浏览器窗口右边距离是否小于菜单宽度,
// 即菜单是否会显示到窗口之外,被浏览器窗口遮盖
// 如果宽度不够,调整菜单横坐标
menuobj.thestyle.left=document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX
else
// 如果宽度足够,根据不同的浏览器纵坐标
// 下面的写法比较简练,从可读性方面的考虑,一般都会推荐使用if..else语句来做.
menuobj.thestyle.left=ie4? ie_x(event.srcElement)+menuOffX : ns6? window.pageXOffset+eventX : eventX
if (bottomedge < menuobj.contentheight&&mod!=0) // 判断到窗口下侧的距离是否小于菜单的高度
// 以及是否需要调查菜单的纵坐标 // 调整菜单纵坐标
menuobj.thestyle.top=document.body.scrollTop+eventY-menuobj.contentheight-event.offsetY+menuOffY-23
else
//
menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
menuobj.thestyle.visibility="visible" // 显示菜单
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货