📄 menu.js
字号:
//要获得最新版本的菜单,请访问http://www.0755i.com/
var mmenus = new Array();
var misShow = new Boolean();
misShow=false;
var misdown = new Boolean();
misdown=false;
var mnumberofsub=0;
var musestatus=false;
var mpopTimer = 0;
mmenucolor='Menu'; mmenucolor="#508CFF";
mmenubg = "../images/bg/ctxb.gif";
mfontcolor='MenuText'; mfontcolor="white";
mmenuoutcolor='#B5BED6'; mmenuoutcolor="#508CFF";
mmenuincolor='#B5BED6'; mmenuincolor="#508CFF";
mmenuoutbordercolor='#000000'; mmenuinbordercolor="white";
mmenuinbordercolor='#000000'; mmenuoutbordercolor = 'white';
mmidoutcolor='#8D8A85'; mmidoutcolor='white';
mmidincolor='#8D8A85'; mmidincolor='white';
mmenuovercolor='MenuText'; mmenuovercolor="red";
mitemedge='0';
msubedge='0';
mmenuunitwidth=70;
mmenuitemwidth=110;
mmenuheight=20;
mmenuwidth='100%';
mmenuadjust=0;
mmenuadjustV=0;
mfonts='font-family: 宋体; font-size: 9pt; color: MenuText; '; mfonts='font-family: 宋体; font-size: 9pt; color: white; ';
mcursor='default'; mcursor="hand";
function stoperror()
{
return true;
}
window.onerror=stoperror;
function mpopOut()
{
mpopTimer = setTimeout('mallhide()', 500);
}
function getReal(el, type, value)
{
temp = el;
while ((temp != null) && (temp.tagName != "BODY"))
{
if (eval("temp." + type) == value)
{
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
function mMenuRegister(menu)
{
mmenus[mmenus.length] = menu;
return (mmenus.length - 1);
}
function mMenuItem(caption,command,target,isline,statustxt,level,img,sizex,sizey,pos)
{
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.isline=isline;
this.statustxt=statustxt;
if(level!=null)
{
mnumberofsub++;
this.hasc=mnumberofsub;
}
this.level=level;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
}
function mMenu(caption,command,target,img,sizex,sizey,pos)
{
this.items = new Array();
this.caption=caption;
this.command=command;
this.target=target;
this.img=img;
this.sizex=sizex;
this.sizey=sizey;
this.pos=pos;
this.id=mMenuRegister(this);
}
function mMenuAddItem(item)
{
this.items[this.items.length] = item
item.parent = this.id;
this.children=true;
}
mMenu.prototype.addItem = mMenuAddItem;
mMenuItem.prototype.addsubItem = mMenuAddItem;
function mtoout(src)
{
src.style.borderLeftColor=mmenuoutbordercolor;
src.style.borderRightColor=mmenuinbordercolor;
src.style.borderTopColor=mmenuoutbordercolor;
src.style.borderBottomColor=mmenuinbordercolor;
src.style.backgroundColor=mmenuoutcolor;
src.style.color=mmenuovercolor;
}
function mtoin(src)
{
src.style.borderLeftColor=mmenuinbordercolor;
src.style.borderRightColor=mmenuoutbordercolor;
src.style.borderTopColor=mmenuinbordercolor;
src.style.borderBottomColor=mmenuoutbordercolor;
src.style.backgroundColor=mmenuincolor;
src.style.color=mmenuovercolor;
}
function mnochange(src)
{
src.style.borderLeftColor=mmenucolor;
src.style.borderRightColor=mmenucolor;
src.style.borderTopColor=mmenucolor;
src.style.borderBottomColor=mmenucolor;
src.style.backgroundColor='';
src.style.color=mfontcolor;
}
function HideElement(menuid, elmID)
{
//------------------------------------------------------------------------
// 下拉菜单的位置,即offsetLeft, offsetRight, offsetTop, offsetBottom
//------------------------------------------------------------------------
var x1 = menuid.style.pixelLeft;
var x2 = menuid.style.pixelLeft + mmenuitemwidth;
var y1 = menuid.style.pixelTop;
var y2 = menuid.style.pixelTop + menuid.offsetHeight;
// 以下查找elmID对象,根据elmID和菜单是否重叠,如果有重叠部分,则隐藏elmID对象
// 查找时首先查找 IFRAME 对象中的 elmID 对象
// 然后查找本页中的 elmID 对象
// 简单起见,不考虑 IFRAME 中又包含 IFRAME 的情况
var obj, objLeft, objTop, objRight, objBottom, objParent;
var objArray;
// 查找 IFRAME 对象中的 elmID 对象
objArray = document.all.tags("IFRAME");
for (var j=0; j<objArray.length; j++)
{
obj = objArray(j);
objLeft = obj.offsetLeft;
objTop = obj.offsetTop;
objParent = obj.offsetParent;
//------------------------------------------------------------------------
// 找到 IFRAME 元素相对于 BODY 的位置 offsetLeft, offsetTop, offsetRight, offsetBottom
//------------------------------------------------------------------------
while (objParent.tagName.toUpperCase() != "BODY")
{
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
// 找到 IFRAME 页中的elmID对象相对于IFRAME对象的相对位置(即相对于IFRAME页中的BODY元素),
var objArrayInnerFrame = document.frames(j).document.all.tags(elmID);
for (var k=0; k<objArrayInnerFrame.length; k++)
{
objInnerFrame = objArrayInnerFrame(k);
objInnerFrameLeft = objInnerFrame.offsetLeft;
objInnerFrameTop = objInnerFrame.offsetTop;
objInnerFrameParent = objInnerFrame.offsetParent;
//------------------------------------------------------------------------
// 找到元素相对于 BODY 的位置 offsetLeft, offsetTop, offsetRight, offsetBottom
//------------------------------------------------------------------------
while (objInnerFrameParent.tagName.toUpperCase() != "BODY")
{
objInnerFrameLeft += objInnerFrameParent.offsetLeft;
objInnerFrameTop += objInnerFrameParent.offsetTop;
objInnerFrameParent = objInnerFrameParent.offsetParent;
}
// IFRAME 中的elmID对象相对于页面BODY的位置=IFRAME相对BODY的位置+elmID相对于IFRAME的位置
objLeft += objInnerFrameLeft;
objTop += objInnerFrameTop;
objRight = objLeft + objInnerFrame.offsetWidth;
objBottom = objTop + objInnerFrame.offsetHeight;
// 调用bHide()函数,判断菜单和elmID对象是否有重叠的部分
if (bHide(objLeft, objRight, objTop, objBottom, x1, x2, y1, y2) == true)
{
objInnerFrame.style.visibility = "hidden";
}
}
}
// 隐藏页面中的 elmID 对象
objArray = document.all.tags(elmID);
for (var j=0; j<objArray.length; j++)
{
obj = objArray(j);
objLeft = obj.offsetLeft;
objTop = obj.offsetTop;
objParent = obj.offsetParent;
//------------------------------------------------------------------------
// 找到元素相对于 BODY 的位置 offsetLeft, offsetTop, offsetRight, offsetBottom
//------------------------------------------------------------------------
while (objParent.tagName.toUpperCase() != "BODY")
{
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
objRight = objLeft + obj.offsetWidth;
objBottom = objTop + obj.offsetHeight;
// 调用bHide()函数,判断菜单和elmID对象是否有重叠的部分
if (bHide(objLeft, objRight, objTop, objBottom, x1, x2, y1, y2) == true)
{
obj.style.visibility = "hidden";
}
}
}
function bHide(objLeft, objRight, objTop, objBottom, x1, x2, y1, y2)
{
//------------------------------------------------------------------------
// 只要对象的左边线在菜单覆盖范围内或右边线在菜单覆盖范围内
// 同时对象的上边线在菜单覆盖范围内或下边线在菜单覆盖范围内
// 也就是说,对象的某一个点在菜单覆盖范围内,就将该对象的显示属性 visibility 设为隐藏 hidden
// ---------
// | |
// | ------——————
// | | | |
// --------- |
// | |
// | |
// --————————
//------------------------------------------------------------------------
var bHorizon = (objLeft > x1 && objLeft < x2) || (objRight > x1 && objRight < x2);
var bVertical = (objTop > y1 && objTop < y2) || (objBottom > y1 && objBottom < y2);
if (bVertical && bHorizon) return true;
//------------------------------------------------------------------------
// 对象的上边线或下边线在菜单覆盖范围内,并且对象的左边线在菜单的左边线的左面,对象的右边线在菜单的右边线的右面
// --------------------------
// | ------—————— |
// | | | |
// ---+-----------------+---
// | |
// | |
// --————————
//------------------------------------------------------------------------
var b1 = (objTop > y1 && objTop < y2) || (objBottom > y1 && objBottom < y2);
var b2 = (objLeft < x1 && objRight > x2);
if (b1 && b2) return true;
//------------------------------------------------------------------------
// 对象的左边线或右边线在菜单覆盖范围内,并且对象的上边线在菜单的上边线的上面,对象的下边线在菜单的下边线的下面
// -------
// | ---|-——————-
// | | | |
// | | | |
// | | | |
// | | | |
// | ---+——————-
// | |
// -------
//------------------------------------------------------------------------
var b3 = (objLeft > x1 && objLeft < x2) || (objRight > x1 && objRight < x2);
var b4 = (objTop < y1 && objBottom > y1);
if (b3 && b4) return true;
return false;
}
function ShowElement(elmID)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -