DHTML Forum  

Go Back   DHTML Forum > dhtmlcentral.com > DHTML Scripts
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 08.11.2006, 15:03
jdeg jdeg is offline
Neuer Benutzer
 
Join Date: 08.11.2006
Location:
Posts: 2
Default

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>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2  
Old 14.11.2006, 17:06
gmn17 gmn17 is offline
Erfahrener Benutzer
 
Join Date: 18.01.2004
Location: USA
Posts: 207
Default

http://juicystudio.com/article/ecmascriptmenu.php

gmail? g-mail? I have gmail it used to be email? e-mail?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

All times are GMT +2. The time now is 22:46.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.