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 18.09.2006, 11:30
jys jys is offline
Neuer Benutzer
 
Join Date: 18.09.2006
Location:
Posts: 2
Default

Hi,
I would like to use the script bellow but is it possible to change it? When I open a page that is in a sub-categorie, the menu should start opened in the right categorie. How do I do that? I am a newbie and all what I tried did not work...
In advance, thank you for your help!
Yours,
Jys

Here is the code I use:
[code:jv6byk46ky]/************************************************** ********************************
FoldoutMenu
* Copyright (C) 2001 Thomas Brattli
* This script was released at DHTMLCentral.com
* Visit for more great scripts!
* This may be used and changed freely as long as this msg is intact!
* We will also appreciate any links you could give us.
*
* Made by Thomas Brattli
************************************************** *******************************/

function lib_bwcheck(){ //Browsercheck (needed)
this.ver=navigator.appVersion
this.agent=navigator.userAgent
this.dom=document.getElementById?1:0
this.opera5=this.agent.indexOf("Opera 5")>-1
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=new lib_bwcheck()



/*** variables you can configure ***/

FoldNumber = 5 //How many toplinks do you have?
var stayFolded = false //Stay open when you click a new toplink?
foldImg = 0 //Do you want images (if not set to 0 and remove the images from the body)?
mainOffsetY = 0 //Vertical space adjustment between the main items, in pixels.

//This is the default image.
//Remember to change the actual images in the page as well, but remember to keep the name of the image.
var unImg=new Image();
unImg.src='barre_menu/foldoutmenu_arrow.gif'

var exImg=new Image(); //Making an image variable...
exImg.src='barre_menu/foldoutmenu_arrow_open.gif' //...this is the source of the image that it changes to when the menu expands.

// NOTE: if you change the position of divCont from absolute to relative, you can put the foldoutmenu in a table.
// HOWEVER it will no longer work in netscape 4. If you wish to support netscape 4, you have to use absolute positioning.

/*** There should be no need to change anything beyond this. ***/

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

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;
initFoldout();
}
};
}

//object constructor...
function makeMenu(obj,nest){
nest= (!nest)?"":'document.'+nest+'.';
this.el= bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):document.getEle mentById(obj);
this.css= bw.ns4?this.el:this.el.style;
this.ref= bw.ns4?this.el.document:document;
this.x= (bw.ns4||bw.opera5)?this.css.left:this.el.offsetLe ft;
this.y= (bw.ns4||bw.opera5)?this.css.top:this.el.offsetTop ;
this.h= (bw.ie||bw.ns6)?this.el.offsetHeight:bw.ns4?this.r ef.height:bw.opera5?this.css.pixelHeight:0;
this.vis= b_vis;
this.hideIt= b_hideIt;
this.showIt= b_showIt;
this.moveIt= b_moveIt;
return this
}
//object methods...
function b_showIt(){this.css.visibility='visible'}
function b_hideIt(){this.css.visibility='hidden'}
function b_vis(){if(this.css.visibility=='hidden' || this.css.visibility=='HIDDEN' || this.css.visibility=='hide') return true;}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x+px; this.css.top=this.y+px}

/************************************************** **********************************
This is the function that changes the sub menus to folded or unfolded state.
************************************************** **********************************/
function menu(num){
if(bw.bw){
if (!stayFolded){
for (var i=0; i<oSub.length; i++){
if (i!=num){
oSub[i:jv6byk46ky].hideIt()
if (foldImg)oTop[i:jv6byk46ky].ref["imgA"+i].src = unImg.src
}
}
for(var i=1; i<oTop.length; i++){
oTop[i:jv6byk46ky].moveIt(0,oTop[i-1].y+oTop[i-1].h)
}
}
if (oSub[num].vis()){
oSub[num].showIt()
if (foldImg)oTop[num].ref["imgA"+num].src = exImg.src
}else{
oSub[num].hideIt()
if(foldImg)oTop[num].ref["imgA"+num].src = unImg.src
}
for(var i=1; i<oTop.length; i++){
if (!oSub[i-1].vis()) oTop[i:jv6byk46ky].moveIt(0,oTop[i-1].y+oTop[i-1].h+oSub[i-1].h+mainOffsetY)
else oTop[i:jv6byk46ky].moveIt(0,oTop[i-1].y+oTop[i-1].h+mainOffsetY)
}
}
}

/************************************************** *******************
The init function... there should be no need to change anything here.
************************************************** *******************/
function initFoldout(){
//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

oTop = new Array()
oSub = new Array()
//Making the objects and hiding the subs...
for (var i=0; i<FoldNumber; i++){
oTop[i:jv6byk46ky] = new makeMenu('divTop'+i,'divCont')
oSub[i:jv6byk46ky] = new makeMenu('divSub'+i,'divCont.document.divTop'+i)
oSub[i:jv6byk46ky].hideIt()
}

//Positioning the top objects...
oTop[0].moveIt(0,0)
for (var i=1; i<oTop.length; i++){
oTop[i:jv6byk46ky].moveIt(0, oTop[i-1].y+oTop[i-1].h+mainOffsetY)
}

//Making the containing menu object and showing it...
oCont = new makeMenu('divCont')
oCont.showIt()
}

// If the browser is ok, the script is started onload...
if(bw.bw) onload = initFoldout;
</script>[/code:jv6byk46ky]
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2  
Old 18.09.2006, 13:53
jys jys is offline
Neuer Benutzer
 
Join Date: 18.09.2006
Location:
Posts: 2
Default

If something is not clear, please let me know. English is not my mothertongue...
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 08:06.


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