![]() |
|
#1
|
|||
|
|||
|
Hi there,
Using the script below for the Foldout Menu 2 i find it doesn't work in IE7. Could someone tell me how to adjust it? Cheers Jdeg <style type="text/css"> #divFoldCont {position:absolute; left:80px; top:100px; width:170px; visibility:hidden;} .clFold {position:absolute; width:170px;} .clFoldSub {position:absolute; left:15px; width:170px; visibility:hidden;} .clFoldSub2 {position:absolute; left:15px; width:170px; visibility:hidden;} .clFoldLinks {font-family:Arial, Verdana, Helvetica, Helv; font-size:14px; font-weight:bold; text-decoration:none; color:black;} .clSubLinks {font-family:Arial, Verdana, Helvetica, Helv; font-size:14px; font-weight:bold; text-decoration:none; color:black;} .clSubLinks2 {font-family:Arial, Verdana, Helvetica, Helv; font-size:12px; text-decoration:none; color:black;} </style> function lib_bwcheck(){ //Browsercheck (needed) this.ver=navigator.appVersion this.agent=navigator.userAgent this.dom=document.getElementById?1:0 this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; this.ie4=(document.all && !this.dom && !this.opera5)?1:0; this.ie=this.ie4||this.ie5||this.ie6 this.mac=this.agent.indexOf("Mac")>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5) return this } var bw=lib_bwcheck() if(document.layers){ //NS4 resize fix... scrX= innerWidth; scrY= innerHeight; onresize= function(){if(scrX!= innerWidth || scrY!= innerHeight){history.go(0)} } } if(navigator.userAgent.indexOf('Opera')>-1 && document.getElementById){ //Opera 5 resize fix. scrX= innerWidth; scrY= innerHeight; document.onmousemove= function(){ if(scrX<innerWidth-10 || scrY<innerHeight-10 || scrX>innerWidth+10 || scrY>innerHeight+10){ scrX = innerWidth; scrY = innerHeight; foldInit(); } }; } function makeMenu(obj,nest){ nest=(!nest) ? "":'document.'+nest+'.'; this.css= bw.dom? document.getElementById(obj).style:bw.ie4?document .all[obj].style:bw.ns4?eval(nest+"document.layers." +obj):0; this.elm= bw.dom?document.getElementById(obj):bw.ie4?documen t.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; this.ref= bw.dom || bw.ie4? document:bw.ns4?eval(nest+"document.layers." +obj+".document"):0; this.x= bw.ns4?this.css.left:bw.opera5?this.css.pixelLeft: this.elm.offsetLeft; this.y= bw.ns4?this.css.top:bw.opera5?this.css.pixelTop:th is.elm.offsetTop; this.height= bw.ns4?this.ref.height:bw.opera5?this.css.pixelHei ght:this.elm.offsetHeight; this.hideIt= b_hideIt; this.showIt= b_showIt; this.moveIt= b_moveIt; this.status= 0; return this; } // A unit of measure that will be added when setting the position of a layer. var px = bw.ns4||window.opera?"":"px"; function b_showIt(){this.css.visibility="visible"; this.status=1} function b_hideIt(){this.css.visibility="hidden"; this.status=0} function b_moveIt(x,y){this.x=x; this.y=y; /*this.css.left=this.x+px;*/ this.css.top=this.y+px;} /************************************************** ********************************** Initiating the page and making the menu ************************************************** **********************************/ function foldInit(){ //Fixing the browsercheck for opera... this can be removed if the browsercheck has been updated!! bw.opera5 = (navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?true:false if (bw.opera5) bw.ns6 = 0 //Creating the foldoutmenu oFold = new Array(); y = 0; for (var i=0; i<mainmenus; i++){ oFold[i:mr0m0mbw0s] = new makeMenu('divFold'+i,'divFoldCont'); oFold[i:mr0m0mbw0s].moveIt(0,y); oFold[i:mr0m0mbw0s].size = oFold[i:mr0m0mbw0s].height; y += oFold[i:mr0m0mbw0s].height+pxbetweenmain; if (bw.ns4) oFold[i:mr0m0mbw0s].css.clip.bottom = 500; oFold[i:mr0m0mbw0s].sub = new Array(); oFold[i:mr0m0mbw0s].subs = top_subs; suby = oFold[i:mr0m0mbw0s].height+pxbetweensub; for (var j=0; j<submenus[i:mr0m0mbw0s]; j++){ oFold[i:mr0m0mbw0s].sub[j] = new makeMenu('divFoldSub'+i+'_'+j,'divFoldCont.documen t.divFold'+i); oFold[i:mr0m0mbw0s].sub[j].sub = new makeMenu('divFoldSub'+i+'_'+j+'_0','divFoldCont.do cument.divFold'+i+'.document.divFoldSub'+i+'_'+j); oFold[i:mr0m0mbw0s].sub[j].hideIt(); oFold[i:mr0m0mbw0s].sub[j].sub.hideIt(); oFold[i:mr0m0mbw0s].sub[j].moveIt(10,suby); suby += oFold[i:mr0m0mbw0s].sub[j].height+pxbetweensub; } } oFoldCont = new makeMenu('divFoldCont'); if (bw.ns4) oFoldCont.css.clip.bottom = 800; oFoldCont.showIt(); //Showing the menu when the menu have been "created" } /************************************************** ********************************** Object function to the top of the menus. ************************************************** **********************************/ function top_subs(show, num){ for (var j=0; j<this.sub.length; j++){ if (show){ this.sub[j].showIt() if (foldImg) this.ref["imgFold"+num].src = foldoutImg.src if (substayfolded){if(this.sub[j].sub.status) this.sub[j].sub.showIt() }else{ if (foldImg) this.sub[j].ref["imgFold"+num+"Sub"+j].src = foldsubinImg.src this.sub[j].sub.hideIt() } }else{ this.sub[j].hideIt() if (foldImg) this.ref["imgFold"+num].src = foldinImg.src if (!substayfolded) this.sub[j].sub.hideIt() else if (substayfolded) this.sub[j].sub.css.visibility="hidden" } } } /************************************************** ********************************** Checking height of the menus, and moves them to the correct position. ************************************************** **********************************/ function checkheight(org){ if(mainstayfolded) istart=org; else istart=0 for(i=istart;i<oFold.length;i++){ oFold[i:mr0m0mbw0s].size=oFold[i:mr0m0mbw0s].height for(j=0;j<oFold[i:mr0m0mbw0s].sub.length;j++){ oFold[i:mr0m0mbw0s].sub[j].size=oFold[i:mr0m0mbw0s].sub[j].height+pxbetweensub if(oFold[i:mr0m0mbw0s].sub[j].status){ oFold[i:mr0m0mbw0s].size+=oFold[i:mr0m0mbw0s].sub[j].size if(oFold[i:mr0m0mbw0s].sub[j].sub.status){ oFold[i:mr0m0mbw0s].size+=oFold[i:mr0m0mbw0s].sub[j].sub.height+pxbetweensub oFold[i:mr0m0mbw0s].sub[j].size+=oFold[i:mr0m0mbw0s].sub[j].sub.height+pxbetweensub } } if(j!=0) oFold[i:mr0m0mbw0s].sub[j].moveIt(10,oFold[i:mr0m0mbw0s].sub[j-1].y+oFold[i:mr0m0mbw0s].sub[j-1].size) } if(i!=0) oFold[i:mr0m0mbw0s].moveIt(0,oFold[i-1].y+oFold[i-1].size+pxbetweenmain) } } /************************************************** ********************************** Fold in and out the submenus. ************************************************** **********************************/ function subfoldmenu(main,sub){ if (!substayfolded){ for (var i=0; i<oFold[main].sub.length; i++){ if (i!=sub){ oFold[main].sub[i:mr0m0mbw0s].sub.hideIt(); if (foldImg) oFold[main].sub[i:mr0m0mbw0s].ref["imgFold"+main+"Sub"+i].src = foldsubinImg.src } } } if (!oFold[main].sub[sub].sub.status){ oFold[main].sub[sub].sub.showIt() if(foldImg) oFold[main].sub[sub].ref["imgFold"+main+"Sub"+sub].src = foldsuboutImg.src } else{ oFold[main].sub[sub].sub.hideIt() if(foldImg) oFold[main].sub[sub].ref["imgFold"+main+"Sub"+sub].src = foldsubinImg.src } checkheight(main) } /************************************************** ********************************** Fold in and out the mainmenus ************************************************** **********************************/ function foldmenu(num){ if (!mainstayfolded){ for(var i=0; i<oFold.length; i++){ if(i!=num) oFold[i:mr0m0mbw0s].subs(0,i) } } if (!oFold[num].sub[0].status) oFold[num].subs(1,num) else oFold[num].subs(0,num) checkheight(num) } //Initiating the menus onload, if the browser is ok. if(bw.bw) onload = foldInit; </script> |
|
#2
|
|||
|
|||
|
http://juicystudio.com/article/ecmascriptmenu.php
gmail? g-mail? I have gmail it used to be email? e-mail? |
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|