Menu rozwijane


Po kliknięciu nastąpi powrót do strony głównej skryptów.

       Niezwykle interesujące menu rozwijane, spotykane na wielu serwisach. Przy odpowiedniej konfiguracji może występować w dwu odmianach: mieszanej, graficzno-tekstowej jak przedstawione poniżej, oraz całkowicie graficznej, wtedy zamiast napisów można użyć grafiki zwykłej, lub animowanej. W takiej właśnie formie wykorzystałem je przy prezentacji swojego księgozbioru i można je zobaczyć tutaj. Menu jest zalecane szczególnie dla tych, którzy muszą się liczyć z miejscem na stronie albo dla tych, którzy menu umieszczają w specjalnej ramce. W przypadku zamieszczenia menu w formie jak poniżej, tekst może być dowolnie formatowany.



Kliknij mnie, a otworzę  menu Część 1
 Część 2
 Część 3
 Część 4
 Część 5
 Część 6


Do zamieszczenia w ramach HEAD:

<style>
DIV.clTop{position:absolute; width:170}
DIV.clSub{position:absolute; left:10; width:170}
#divCont{position:relative; left:100; top:0; height:400; width:170;}
A.clMain{font-size:14px; text-decoration:none; font-weight:bold; color:black}
#divMain{position:absolute}
//-->
</style>

<script language="JavaScript">
/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts.
This may be used freely as long as this msg is intact!
********************************************************************************/

/************************************************************************************
This script is a "foldout" menu script, all the "foldouts" will
stay outfolded in older browsers. Works in ie4+ and ns4+.
ADDED: Images

To change where the menu appears change the left and top values of the divCont
in the stylesheets, it's currently placed relative so you can
place this menu in tables or similar if you want. Change the
text colors and size in the A.clMain and A.clSubb classes.
************************************************************************************/

/************************************************************************************

Change this to false if you want all the submenus to get unfold when you foldout a new one.
************************************************************************************/

var stayFolded=false

//This is the image that it changes to when it expands.
var exImg=new Image(); exImg.src='1.gif'
//This is the image is changes to with it's "unfolded" or something :}
//Remeber to change the actual images in the page aswell, but remember to
//keep the name of the image.
var unImg=new Image(); unImg.src='2.gif'

/************************************************************************************

Browsercheck
************************************************************************************/

var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
var browser=((n || ie) && parseInt(navigator.appVersion)>=4)

/************************************************************************************

Making cross-browser objects
************************************************************************************/

function makeMenu(obj,nest){
nest=(!nest) ? '':'document.'+nest+'.'
this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
this.ref=(n) ? eval(nest+'document.'+obj+'.document'):eval('document');
this.height=n?this.ref.height:eval(obj+'.offsetHeight')
this.x=(n)? this.css.left:this.css.pixelLeft;this.y=(n)? this.css.top:this.css.pixelTop;
this.hideIt=b_hideIt; this.showIt=b_showIt; this.vis=b_vis; this.moveIt=b_moveIt
return this
}
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=="hide") return true;}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
/************************************************************************************

Initiating the page. Just add to the arrays here to get more menuitems and add divs in the page ************************************************************************************/

function init(){
oTop=new Array()
oTop[0]=new makeMenu('divTop1','divCont')
oTop[1]=new makeMenu('divTop2','divCont')
oTop[2]=new makeMenu('divTop3','divCont')
oTop[3]=new makeMenu('divTop4','divCont')
oTop[4]=new makeMenu('divTop5','divCont')
oTop[5]=new makeMenu('divTop6','divCont')
oSub=new Array()
oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')
oSub[3]=new makeMenu('divSub4','divCont.document.divTop4')
oSub[4]=new makeMenu('divSub5','divCont.document.divTop5')
oSub[5]=new makeMenu('divSub6','divCont.document.divTop6')
for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
}
/************************************************************************************

This is the function that changes the sub menus to folded or unfolded state.
************************************************************************************/
function menu(num){
if(browser){
if(!stayFolded){
for(i=0;i<oSub.length;i++){
if(i!=num){
oSub[i].hideIt()
oTop[i].ref["imgA"+i].src=unImg.src
}
}
for(i=1;i<oTop.length;i++){
oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
}
}
if(oSub[num].vis()){
oSub[num].showIt()
oTop[num].ref["imgA"+num].src=exImg.src
}else{
oSub[num].hideIt()
oTop[num].ref["imgA"+num].src=unImg.src
}
for(i=1;i<oTop.length;i++){
if(!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)
else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
}
}
}
//Initiating the menus onload, if it's a 4.x+ browser.
if(browser) onload=init;
</script>


Do umieszczenia w dowolnym miejscu:

<div id="divCont">
<div id="divTop1" class="clTop"><a href="#" onclick="menu(0); return false" class="clMain"><img src="2.gif" name="imgA0" width=20 height=20 alt="Kliknij mnie, a otworzę menu" border="0"> <FONT SIZE="+1" title="To menu zawiera pozycje próbne"><B>Część 1</B></FONT></a><br>
<div id="divSub1" class="clSub">
<a href="#">Sub 1</a><br>
<a href="#">Sub 2</a><br>
<a href="#">Sub 3</a><br>
<a href="#">Sub 4</a><br>
</div>
</div>
<div id="divTop2" class="clTop"><a href="#" onclick="menu(1); return false" class="clMain"><img src="2.gif" name="imgA1" width=20 height=20 alt="" border="0"> <FONT SIZE="+1"><B>Część 2</B></FONT></a><br>
<div id="divSub2" class="clSub">
<a href="#">-Sub 1</a><br>
<a href="#">-Sub 2</a><br>
</div>
</div>
<div id="divTop3" class="clTop"><a href="#" onclick="menu(2); return false" class="clMain"><img src="2.gif" name="imgA2" width=20 height=20 alt="" border="0"> <FONT SIZE="+1"><B>Część 3</B></FONT></a><br>
<div id="divSub3" class="clSub">
<a href="#">-Sub 1</a><br>
<a href="#">-Sub 2</a><br>
<a href="#">-Sub 3</a><br>
</div>
</div>
<div id="divTop4" class="clTop"><a href="" onclick="menu(3); return false" class="clMain"><img src="2.gif" name="imgA3" width=20 height=20 alt="" border="0"> <FONT SIZE="+1"><B>Część 4</B></FONT></a><br>
<div id="divSub4" class="clSub">
<a href="#">-Sub 1</a><br>
<a href="#">-Sub 2</a><br>
</div>
</div>
<div id="divTop5" class="clTop"><a href="#" onclick="menu(4); return false" class="clMain"><img src="2.gif" name="imgA4" width=20 height=20 alt="" border="0"> <FONT SIZE="+1"><B>Część 5</B></FONT></a><br>
<div id="divSub5" class="clSub">
<a href="#">-Sub 1</a><br>
<a href="#">-Sub 2</a><br>
<a href="#">-Sub 3</a><br>
<a href="#">-Sub 4</a><br>
<a href="#">-Sub 5</a><br>
</div>
</div>
<div id="divTop6" class="clTop"><!-- <a href="" onclick="menu(5); return false" class="clMain"> --><A HREF="#tekst" TITLE="Przeskoczenie do menu lokalnego strony"><img src="2.gif" name="imgA5" width=20 height=20 alt="" border="0"> <FONT SIZE="+1"><B>Część 6</B></FONT></a><br>
<div id="divSub6" class="clSub">
<!-- <a href="#">-Sub 1</a> -->
</div>
</div>
</div>




Skrypt do pobrania:

Po kliknięciu nastąpi transfer archiwum z plikiem tekstowym ze skryptem