|  xiaoyun_5d
 职务:普通成员
 等级:1
 金币:0.0
 发贴:6
 注册:2002/10/13 8:56:07
 
 | 
                            
                            #12002/10/13 9:18:49 
                                -------------------------------------------- -----------------------------------------------------
 ------------------------------------------------------
 
 /*--------------------------------------------
 管理样式多级菜单 1.0  制作 Stroll
 
 --------------------------------------------*/
 
 //---------------  有关数据 -----------------//
 
 var IconList = new Array();   // icon图片 集合, 下标从 1 开始
 
 IconList[1] = new Image();
 
 IconList[1].src = "icon/edit.gif";
 
 
 //----------------  检测变量 菜单的显示隐藏就靠它了!!!  ------------------//
 
 
 var SubMenuList = new Array();
 
 var NowSubMenu = "";
 
 var mouseCanSound = true;      //---------------------------  声音开关 ------  声音开关 ------------------//
 
 var menuSpeed     =  50;   //---------- 菜单显示速度 ------------//
 
 var alphaStep     =  30;   //---------- Alpaha 变化 度 -----------//
 
 
 //------------- 构建 顶部菜单 对象 -------------//
 
 function TopMenu(objName,L,T)
 {
 this.id       = "Menu_"+objName;
 this.obj      = objName;
 this.length  = 0;
 
 this.L       = L
 
 this.T       = T
 
 this.addTopMenu = addTopMenu;
 this.addTopLink = addTopLink;
 
 this.returnAll  = returnAll
 
 document.body.insertAdjacentHTML('afterBegin','');
 }
 
 //----------returnAll----------------//
 
 function returnAll(str)
 {
 var obj = eval("temp_"+this.id);
 
 str = eval(str)
 
 var tempstr = obj.innerHTML
 
 
 obj.outerHTML = "";
 
 str.insertAdjacentHTML('beforeEnd',tempstr)
 
 
 
 }
 
 //----------- 构建 子菜单 对象 -------------//
 
 function SubMenu(objName,objID)
 {
 this.obj = objName;
 this.id  = objID;
 
 this.addMenu = addMenu;
 this.addLink = addLink;
 this.addHR   = addHR;
 
 this.length  = 0;
 }
 
 
 //-------------- 主菜单对象 addTopMenu 方法 ------------//
 function addTopMenu(word,icon,title)
 {
 var subID    = this.id + "_" + this.length;
 var subObj  = this.obj+"["+this.length+"]";
 
 var oldID   = this.id;
 
 eval(subObj+"= new SubMenu('"+subObj+"','"+subID+"')");
 
 makeTopMenu(subID,oldID,word,icon,title);
 
 this.length++;
 
 }
 
 
 //------------- 主菜单对象 addTopLink 方法 -------------//
 function addTopLink(word,icon,url,target,title)
 {
 var subID    = this.id + "_" + this.length;
 var oldID  = this.id;
 
 makeTopLink(subID,oldID,word,icon,url,target,title);
 
 this.length++;
 }
 
 //-------------- 生成 菜单 makeTopMenu 方法 -----------//
 function makeTopMenu(subID,oldID,word,icon,thetitle)
 {
 if(icon&&icon!="")
 {
 icon = '
  '; }
 else
 {
 icon = '';
 }
 
 if(!thetitle||thetitle=="")
 {
 thetitle = '';
 }
 
 
 var Oobj = document.getElementById(oldID);
 
 /*--------------------------------------------- 菜单html样式
 
 
 
 | --------------------------------------------------*/
 
 var TempTableStr = ''
 
 Oobj.rows(0).insertCell().innerHTML = TempTableStr
 
 
 document.body.insertAdjacentHTML('beforeEnd','');
 
 }
 
 
 
 //---------------- 生成连接 makeTopLink 方法 ------------//
 function makeTopLink(subID,oldID,word,icon,url,target,thetitle)
 {
 
 
 var thelink = '';
 
 if(icon&&icon!="")
 {
 icon = '
  '; }
 else
 {
 icon = '';
 }
 
 if(!thetitle||thetitle=="")
 {
 thetitle = '';
 }
 
 
 if(url&&url!="")
 {
 thelink += '
 if(target&&target!="")
 {
 thelink += '  ';+target+'" '"'
 }
 
 var Oobj = document.getElementById(oldID);
 
 
 /*--------------------------------------------- 连接html样式
 
 >
 
 
 --------------------------------------------------*/
 
 var TempTableStr = ''
 
 Oobj.rows(0).insertCell().innerHTML = TempTableStr
 
 }
 
 
 //*******************************************************************//
 
 
 
 //-------------- 菜单对象 addMenu 方法 ------------//
 function addMenu(word,icon,url,target,title)
 {
 var subID    = this.id + "_" + this.length;
 var subObj  = this.obj+"["+this.length+"]";
 
 var oldID   = this.id;
 
 eval(subObj+"= new SubMenu('"+subObj+"','"+subID+"')");
 
 makeMenu(subID,oldID,word,icon,url,target,title);
 
 this.length++;
 
 }
 
 
 //------------- 菜单对象 addLink 方法 -------------//
 function addLink(word,icon,url,target,title)
 {
 var subID    = this.id + "_" + this.length;
 var oldID  = this.id;
 
 makeLink(subID,oldID,word,icon,url,target,title);
 
 this.length++;
 }
 
 //------------ 菜单对象 addHR 方法 -----------------//
 function addHR()
 {
 var oldID = this.id;
 
 var Oobj = document.getElementById(oldID);
 
 Oobj.insertRow();
 
 /*------------------------------------------
 
 
 
 
 
 | 
 
 --------------------------------------------*/
 
 
 Oobj.rows(Oobj.rows.length-1).insertCell();
 
 with(Oobj.rows(Oobj.rows.length-1))
 {
 cells(0).colSpan= 4;
 cells(0).insertAdjacentHTML('beforeEnd','');
 }
 
 }
 
 
 
 
 
 //-------------- 生成 菜单 makeMenu 方法 -----------//
 function makeMenu(subID,oldID,word,icon,url,target,thetitle)
 {
 var thelink = '';
 
 
 if(icon&&icon!="")
 {
 icon = '
  '; }
 else
 {
 icon = '';
 }
 
 if(!thetitle||thetitle=="")
 {
 thetitle = '';
 }
 
 
 if(url&&url!="")
 {
 thelink += '
 if(target&&target!="")
 {
 thelink += '  ';+target+'" '"'
 }
 
 var Oobj = document.getElementById(oldID);
 
 /*--------------------------------------------- 菜单html样式
 
 >
 
 
 --------------------------------------------------*/
 
 Oobj.insertRow();
 
 
 with(Oobj.rows(Oobj.rows.length-1))
 {
 id             = "tr"+subID;
 className    = "menutrout";
 
 title       = thetitle;
 
 }
 
 eventObj = "tr"+subID;
 
 eval(eventObj+'.attachEvent("onmouseover",MtrOver('+eventObj+'))');
 eval(eventObj+'.attachEvent("onclick",MtrClick('+eventObj+'))');
 
 var trObj = eval(eventObj);
 
 for(i=0;i<4;i++)
 {
 trObj.insertCell();
 }
 
 with(Oobj.rows(Oobj.rows.length-1))
 {
 cells(0).className = "menutd0";
 cells(0).innerHTML = icon;
 
 cells(1).innerHTML = thelink+''+word+'';
 cells(1).calssName = "indentWord"
 
 cells(2).className = "menutd1";
 cells(2).innerHTML = "4";
 
 cells(3).className = "menutd2";
 cells(3).innerText = " ";
 
 }
 
 
 
 document.body.insertAdjacentHTML('beforeEnd','');
 
 
 
 }
 
 
 
 //---------------- 生成连接 makeLink 方法 ------------//
 function makeLink(subID,oldID,word,icon,url,target,thetitle)
 {
 
 
 var thelink = '';
 
 if(icon&&icon!="")
 {
 icon = '
  '; }
 else
 {
 icon = '';
 }
 
 if(!thetitle||thetitle=="")
 {
 thetitle = '';
 }
 
 
 if(url&&url!="")
 {
 thelink += '
 if(target&&target!="")
 {
 thelink += '  ';+target+'" '"'
 }
 
 var Oobj = document.getElementById(oldID);
 
 
 /*--------------------------------------------- 连接html样式
 
 >
 
 
 --------------------------------------------------*/
 
 Oobj.insertRow();
 
 
 with(Oobj.rows(Oobj.rows.length-1))
 {
 id             = "tr"+subID;
 className    = "menutrout";
 title       = thetitle;
 
 }
 
 eventObj = "tr"+subID;
 
 eval(eventObj+'.attachEvent("onmouseover",LtrOver('+eventObj+'))');
 eval(eventObj+'.attachEvent("onmouseout",LtrOut('+eventObj+'))');
 eval(eventObj+'.attachEvent("onclick",MtrClick('+eventObj+'))');
 
 var trObj = eval(eventObj);
 
 for(i=0;i<4;i++)
 {
 trObj.insertCell();
 }
 
 with(Oobj.rows(Oobj.rows.length-1))
 {
 cells(0).className = "menutd0";
 cells(0).innerHTML = icon;
 
 cells(1).innerHTML = thelink+''+word+'';
 
 cells(2).className = "linktd1";
 cells(2).innerText = " ";
 
 cells(3).className = "menutd2";
 cells(3).innerText = " ";
 
 }
 
 }
 
 
 //--------- MtrOver(obj,isTop)-------------------//
 function MtrOver(obj,isTop)
 {
 if(isTop)
 {
 var sonid = obj.id.substring(2,obj.id.length);
 
 var topobj = obj.parentElement.parentElement;
 
 NowSubMenu = topobj.id;
 
 if(obj.className=="menutrout")
 {
 mouseWave();
 }
 
 HideMenu(1);
 
 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;
 
 if(isTop)
 {
 ShowTheMenu(sonid,100)
 }
 else
 {
 ShowTheMenu(sonid,MPreturn(sonid))
 }
 
 SubMenuList[returnIndex(obj.id)] = sonid;
 
 if(topobj.oldTR)
 {
 eval(topobj.oldTR+'.className = "menutrout"');
 }
 
 obj.className = "menutrin";
 
 topobj.oldTR = obj.id;
 }
 else
 {
 return sub_over;
 
 function sub_over()
 {
 
 var sonid = obj.id.substring(2,obj.id.length);
 
 var topobj = obj.parentElement.parentElement;
 
 NowSubMenu = topobj.id;
 
 if(obj.className=="menutrout")
 {
 mouseWave();
 }
 
 HideMenu(1);
 
 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;
 
 if(isTop)
 {
 ShowTheMenu(sonid,100)
 }
 else
 {
 ShowTheMenu(sonid,MPreturn(sonid))
 }
 
 SubMenuList[returnIndex(obj.id)] = sonid;
 
 if(topobj.oldTR)
 {
 eval(topobj.oldTR+'.className = "menutrout"');
 }
 
 obj.className = "menutrin";
 
 topobj.oldTR = obj.id;
 
 
 }
 }
 }
 
 //--------- LtrOver(obj,isTop)-------------------//
 function LtrOver(obj,isTop)
 {
 if(isTop)
 {
 var topobj = obj.parentElement.parentElement;
 
 NowSubMenu = topobj.id;
 
 HideMenu(1);
 
 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;
 
 if(topobj.oldTR)
 {
 eval(topobj.oldTR+'.className = "menutrout"');
 }
 
 obj.className = "menutrin";
 
 topobj.oldTR = obj.id;
 }
 else
 {
 return sub_over;
 
 function sub_over()
 {
 var topobj = obj.parentElement.parentElement;
 
 NowSubMenu = topobj.id;
 
 HideMenu(1);
 
 SubMenuList[returnIndex(NowSubMenu)] = NowSubMenu;
 
 if(topobj.oldTR)
 {
 eval(topobj.oldTR+'.className = "menutrout"');
 }
 
 obj.className = "menutrin";
 
 topobj.oldTR = obj.id;
 
 }
 }
 }
 
 //--------- LtrOut(obj,isTop)-------------------//
 function LtrOut(obj,isTop)
 {
 if(isTop)
 {
 var topobj = obj.parentElement.parentElement;
 
 obj.className = "menutrout";
 
 topobj.oldTR = false;
 
 }
 else
 {
 return sub_out;
 
 function sub_out()
 {
 var topobj = obj.parentElement.parentElement;
 
 obj.className = "menutrout";
 
 topobj.oldTR = false;
 }
 }
 }
 
 //----------MtrClick(obj,isTop)-----------------//
 
 function MtrClick(obj,isTop)
 {
 
 if(isTop)
 {
 if(obj.cells(1).all.tags("A").length>0)
 {
 obj.cells(1).all.tags("A")(0).click();
 }
 }
 else
 {
 return sub_click;
 
 function sub_click()
 {
 if(obj.cells(1).all.tags("A").length>0)
 {
 obj.cells(1).all.tags("A")(0).click();
 }
 
 }
 }
 }
 
 
 //----------TMtrClick(obj)-----------------//
 
 function TMtrClick(obj)
 {
 if(obj.MH)
 {
 MtrOver(obj,1)
 
 obj.MH = false;
 }
 else
 {
 document.onmouseup()
 
 obj.MH = true;
 }
 }
 
 //---------- returnIndex(str)--------------//
 
 function returnIndex(str)
 {
 return (str.split("_").length-3)
 }
 
 
 //---------ShowTheMenu(obj,num)-----------------//
 
 function ShowTheMenu(obj,num)
 {
 var topobj = eval(obj.substring(0,obj.length-2));
 
 
 
 var SrcObj  = eval(topobj.id.split("_")[1])
 
 
 var ML      = 0
 if(SrcObj.L)
 {
 ML            += eval(SrcObj.L)
 }
 var MT      = 0
 if(SrcObj.T)
 {
 MT            += eval(SrcObj.T)
 }
 
 
 var trobj  = eval("tr"+obj);
 
 var obj = eval(obj);
 
 var TheTDLeft = trobj.parentElement.parentElement.parentElement.offsetLeft;
 
 
 if(num==0)
 {
 with(obj.style)
 {
 pixelLeft = topobj.style.pixelLeft +topobj.offsetWidth;
 pixelTop  = topobj.style.pixelTop + trobj.offsetTop;
 }
 }
 if(num==1)
 {
 with(obj.style)
 {
 pixelLeft = topobj.style.pixelLeft + topobj.offsetWidth;
 pixelTop  = topobj.style.pixelTop  + trobj.offsetTop + trobj.offsetHeight - obj.offsetHeight;
 }
 }
 if(num==2)
 {
 with(obj.style)
 {
 pixelLeft = topobj.style.pixelLeft -  obj.offsetWidth;
 pixelTop  = topobj.style.pixelTop + trobj.offsetTop;
 }
 }
 if(num==3)
 {
 with(obj.style)
 {
 pixelLeft = topobj.style.pixelLeft -  obj.offsetWidth;
 pixelTop  = topobj.style.pixelTop  + trobj.offsetTop + trobj.offsetHeight - obj.offsetHeight;
 }
 }
 
 if(num==100)
 {
 with(obj.style)
 {
 pixelLeft = document.body.scrollLeft + topobj.offsetLeft + TheTDLeft + ML;
 pixelTop  = document.body.scrollTop + topobj.offsetTop + topobj.offsetHeight + MT;
 }
 }
 
 obj.style.visibility  = "visible";
 
 if(obj.alphaing)
 {
 clearInterval(obj.alphaing);
 }
 
 obj.alphaing = setInterval("menu_alpha_up("+obj.id+","+alphaStep+")",menuSpeed);
 }
 
 //----------HideMenu(num)-------------------//
 
 /*----------------------
 var SubMenuList = new Array();
 
 var NowSubMenu = "";
 
 ---------------------*/
 
 function HideMenu(num)
 {
 var thenowMenu = "";
 
 var obj = null;
 
 if(num==1)
 {
 thenowMenu = NowSubMenu
 }
 
 
 
 for(i=SubMenuList.length-1;i>=0;i--)
 {
 if(SubMenuList[i]&&SubMenuList[i]!=thenowMenu)
 {
 
 obj = eval(SubMenuList[i]);
 
 if(obj.alphaing)
 {
 clearInterval(obj.alphaing);
 }
 
 obj.alphaing = setInterval("menu_alpha_down("+obj.id+","+alphaStep+")",menuSpeed);
 
 obj.style.visibility = "hidden";        //-----如果想缓慢隐藏,请去掉这项---------------//------------//
 
 eval("tr"+SubMenuList[i]).className = "menutrout";
 
 SubMenuList[i] = null;
 }
 else
 {
 if(SubMenuList[i]==thenowMenu)
 {
 return;
 }
 }
 }
 
 NowSubMenu = "";
 }
 
 //-----------MenuPosition return(obj)--------------//
 
 function MPreturn(obj)
 {
 var topobj = eval(obj.substring(0,obj.length-2));
 
 var trobj  = eval("tr"+obj);
 
 var x = topobj.style.pixelLeft + topobj.offsetWidth;
 var y = topobj.style.pixelTop  + trobj.offsetTop;
 
 obj = eval(obj);
 
 var judgerY =  obj.offsetHeight + y;
 var judgerX =  obj.offsetWidth  + x;
 
 var py = 0;
 var px = 0;
 
 if(judgerY>=document.body.clientHeight)
 {
 py = 1;
 }
 
 if(judgerX>= document.body.clientWidth)
 {
 px = 2;
 }
 
 return (px+py);
 }
 
 //-----------mouseWave()-------------//
 
 function mouseWave()
 {
 if(mouseCanSound)
 {
 theBS.src= "sound.wav";
 }
 }
 
 //----------- menu_alpha_down -------//
 
 function menu_alpha_down(obj,num)
 {
 var obj = eval(obj);
 
 if(obj.filters.Alpha.Opacity > 0 )
 {
 obj.filters.Alpha.Opacity += -num;
 }
 else
 {
 clearInterval(obj.alphaing);
 obj.filters.Alpha.Opacity = 0;
 obj.alphaing = false;
 obj.style.visibility = "hidden";
 }
 }
 
 
 //------------ menu_alpha_up --------//
 
 function menu_alpha_up(obj,num)
 {
 var obj = eval(obj);
 
 if(obj.filters.Alpha.Opacity<100)
 obj.filters.Alpha.Opacity += num;
 else
 {
 clearInterval(obj.alphaing);
 obj.filters.Alpha.Opacity = 100;
 obj.alphaing = false;
 }
 }
 
 //---------- IE mouseup --------//
 
 function document.onmouseup()
 {
 HideMenu();
 }
 
 var TM = new TopMenu("TM")
 
 TM.addTopLink("红色代码",1,"javascript:alert('为你献上最好的javascript脚本')")
 TM.addTopMenu("下拉菜单1",1)
 TM[1].addLink("hello",0,"javascript:alert();")
 TM[1].addLink("hello",0,"javascript:;")
 TM[1].addMenu("hello")
 TM[1][2].addLink("hello",0,"javascript:;")
 TM[1][2].addLink("hello",0,"javascript:;")
 TM[1][2].addLink("hello",0,"javascript:;")
 TM[1][2].addLink("hello",0,"javascript:;")
 TM[1].addLink("hello",0,"javascript:;")
 TM[1].addHR()
 TM[1].addMenu("hello")
 TM[1][4].addLink("hello",0,"javascript:;")
 TM[1][4].addLink("hello",0,"javascript:;")
 TM[1][4].addLink("hello",0,"javascript:;")
 TM[1][4].addLink("hello",0,"javascript:;")
 TM.addTopLink("链接",0,"javascript:alert()")
 TM.addTopMenu("下拉菜单2")
 TM[3].addLink("hello",0,"javascript:alert();")
 TM[3].addLink("hello",0,"javascript:;")
 TM[3].addLink("hello",0,"javascript:;")
 TM[3].addMenu("hello")
 TM[3][3].addLink("hello",0,"javascript:;")
 TM[3][3].addLink("hello",0,"javascript:;")
 TM[3][3].addLink("hello",0,"javascript:;")
 TM[3][3].addLink("hello",0,"javascript:alert();")
 TM.returnAll("document.body")  //生成在 document.body里面
 -------------------------------------------------------------------
 
 
 希望一起学习JS!!!
 
                                
                                    编辑历史:[这消息被xiaoyun编辑过(编辑时间2002-10-13 09:25:43)]
 
 [IMG]http://kisswd.8u8.com/xyqm1.gif[/IMG][color=Silver]小宇...真实的我...现实的我.....
[/color] |