当前位置:首页 > 设计在线 > 网页设计 > Javascript > 三层的弹出式菜单

三层的弹出式菜单

点击次数:30 次 发布日期:2008-11-26 22:59:51 作者:源代码网
源代码网推荐

代码1:

<SCRIPT language=JavaScript>
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="#FF3300";mfontcolor="#FFFFFF";mmenuoutcolor="#FF8866";mmenuincolor="#FF8866";mmenuoutbordercolor="#FFFFFF";mmenuinbordercolor="#FFFFFF";mmidoutcolor="#FFFFFF";mmidincolor="#FFFFFF";mmenuovercolor="#FFFFFF";mitemedge="0";msubedge="1";mmenuunitwidth=66;mmenuitemwidth=140;mmenuheight=20;mmenuwidth="100%";mmenuadjust=0;mmenuadjustV=0;mfonts="font-family: 宋体; font-size: 9pt; color: #FFFFFF; ";mcursor="hand";
var swipeSteps = 4;
var swipemsec = 25;
var swipeArray = new Array();
function swipe(el, dir, steps, msec) {
 if (steps == null) steps = swipeSteps;
 if (msec == null) msec = swipemsec;
 if (el.swipeIndex == null)
  el.swipeIndex = swipeArray.length;
 if (el.swipeTimer != null)
  window.clearTimeout(el.swipeTimer);
 swipeArray[el.swipeIndex] = el;
 el.style.clip = "rect(-99999, 99999, 99999, -99999)";
 if (el.swipeCounter == null || el.swipeCounter == 0) {
  el.orgLeft  = el.offsetLeft;
  el.orgTop  = el.offsetTop;
  el.orgWidth = el.offsetWidth;
  el.orgHeight  = el.offsetHeight;
 }
 el.swipeCounter = steps;
 el.style.clip = "rect(0,0,0,0)";
 window.setTimeout("repeat(" + dir + "," + el.swipeIndex + "," + steps + "," + msec + ")", msec);
}
function repeat(dir, index, steps, msec) {
 el = swipeArray[index];
 var left   = el.orgLeft;
 var top    = el.orgTop;
 var width  = el.orgWidth;
 var height = el.orgHeight;
 if (el.swipeCounter == 0) {
  el.style.clip = "rect(-99999, 99999, 99999, -99999)";
  return;
 }
 else {
  el.swipeCounter--;
  el.style.visibility = "visible";
  switch (dir) {
   case 2:
    el.style.clip = "rect(" + height*el.swipeCounter/steps + "," + width + "," + height + "," + 0 + ")";
    el.style.top  = top - height*el.swipeCounter/steps;
    break;
   case 8:
    el.style.clip = "rect(" + 0 + "," + width + "," + height*(steps-el.swipeCounter)/steps + "," + 0 + ")";
    el.style.top  = top + height*el.swipeCounter/steps;
    break;
   case 6:
    el.style.clip = "rect(" + 0 + "," + width + "," + height + "," + width*(el.swipeCounter)/steps + ")";
    el.style.left  = left - width*el.swipeCounter/steps;
    break;
   case 4:
    el.style.clip = "rect(" + 0 + "," + width*(swipeSteps - el.swipeCounter)/steps + "," + height + "," + 0 + ")";
    el.style.left  = left + width*el.swipeCounter/steps;
    break;
  }
 
  el.swipeTimer = window.setTimeout("repeat(" + dir + "," + index + "," + steps + "," + msec + ")", msec);
 }
}
var mtmpleft="";
var mtmptop="";
function hideSwipe(el) {
 window.clearTimeout(el.swipeTimer);
 el.style.visibility = "hidden";
 el.style.clip = "rect(-99999, 99999, 99999, -99999)";
 el.swipeCounter = 0;
 if(mtmpleft!="")el.style.left = mtmpleft;
 if(mtmptop!="")el.style.top = mtmptop;
}

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 mallhide(){
 for(var nummenu=0;nummenu<mmenus.length;nummenu++){
  var themenu=document.all["mMenu"+nummenu]
  var themenudiv=document.all["mmenudiv"+nummenu]
                mnochange(themenu);
                mmenuhide(themenudiv);
                }
        for(nummenu=1;nummenu<=mnumberofsub;nummenu++){ 
         var thesub=document.all["msubmenudiv"+nummenu]     
         msubmenuhide(thesub);
         mnochange(document.all["mp"+nummenu]);
         document.all["mitem"+nummenu].style.color=mfontcolor;
         }
}
function mmenuhide(menuid){
menuid.style.filter="Alpha(Opacity=100)";
hideSwipe(menuid);
misShow=false;
}
function msubmenuhide(menuid){
menuid.style.filter="Alpha(Opacity=100)";
menuid.style.visibility="hidden";
}
function mmenushow(menuid,pid){
menuid.style.filter="Alpha(Opacity=80)";
menuid.style.left=mposflag.offsetLeft+


源代码网供稿.
网友评论 (0)
会员中心
设计在线
本站推荐
设计在线之精华