Newsgroup: it.comp.lang.javascript
Titolo: Sistema di menu





ho visto in qualche sito, una specie di finestra, che non 
appena il mouse ci passa sopra, si ingrandisce, o meglio "scorre".


Chiedevo se sarebbe possibile creare una finestra di quel tipo 
utilizzandola come menu del proprio dito (in alternativa ai classici menu via 
frame oppure via struttura ad albero)


lo chiedo perchè le poche volte che ho visto queste cose, 
queste contenevano soltanto banner o immagini.......


grazie.



Non so se ho capito esattamente quello che intendi, ma forse ho lo script
che fa per te...
Prova su questo link:
http://tinpan.fortunecity.com/hifi/218/menuscorrevole.htm
Si tratta di un menù che si comporta più o meno come dici tu, scorrendo
sotto il puntatore del mouse.
Insomma, vedi e fammi sapere.
Ciao!
Carlo "Sauron" Pelliccia

ESATTO
è proprio quello, ce l'hai ?
non mi sembra nemmeno molto lento da caricare, puoi spedirlo ?
thx

Vabbè, tranquillo, mi sono accorto che lo avevi già copiato solo dopo
avertelo spedito tutto illustrato...!
Comunque, ti ripeto, se ci sono problemi fammelo sapere.
Ciao

...


Il codice è piuttosto semplice da gestire.
Per prima cosa devi impostare lo stile per il menù come segue:
<STYLE>
<!--
#slidemenubar, #slidemenubar2{
position:absolute;
left:-155px;
width:160px;
top:110px;
border:1.5px solid black;
background-color:lightblue;
layer-background-color:lightblue;
font:bold 12px Verdana;
line-height:20px;
}
-->
</STYLE>
Naturalmente puoi sostituire i valori, i colori ed i pixel come vuoi tu.
A questo punto non devi far altro che inserire lo script nel body del tuo
documento
Per personalizzare i links devi fare un'operazione molto semplice.
Nel mio esempio sono elencati semplicemente come LINK1, LINK2 ecc.
Tu rinominali come serve a te e se vuoi aggiungine altri o rimuovine alcuni.
Per aggiungere basta che introduci in coda alla lista dei link una riga di
codice del tipo
sitems[n]="LINK"
dove n è un numero progressivo che indica la cardinalità del link
Naturalmente a questi link devi associare un URL valido.
Lo puoi fare poche righe più sotto con le voci
sitemlinks[n]="
http://www.quellochetipare.com
"
Ecco lo script
<SCRIPT LANGUAGE="JavaScript1.2">
if (document.all)
document.write('<div id="slidemenubar2" style="left:-150"
onMouseover="pull()" onMouseout="draw()">')
</SCRIPT>
<LAYER ID="slidemenubar" ONMOUSEOVER="pull()" ONMOUSEOUT="draw()">
<SCRIPT LANGUAGE="JavaScript1.2">
var sitems=new Array()
var sitemlinks=new Array()
sitems[0]="LINK 1"
sitems[1]="LINK 2"
sitems[2]="LINK 3"
sitems[3]="LINK 4"
sitems[4]="LINK 5"
sitems[5]="LINK 6"
sitems[6]="LINK 7"
sitems[7]="LINK 8"
sitems[8]="LINK 9"
sitems[9]="LINK 10"
sitemlinks[0]="
http://www.nowhereband.musicpage.com
"
sitemlinks[1]="
http://www.nowhereband.musicpage.com
"
sitemlinks[2]="
http://www.nowhereband.musicpage.com
"
sitemlinks[3]="
http://www.nowhereband.musicpage.com
"
sitemlinks[4]="
http://www.nowhereband.musicpage.com
"
sitemlinks[5]="
http://www.nowhereband.musicpage.com
"
sitemlinks[6]="
http://www.nowhereband.musicpage.com
"
sitemlinks[7]="
http://www.nowhereband.musicpage.com
"
sitemlinks[8]="
http://www.nowhereband.musicpage.com
"
sitemlinks[9]="
http://www.nowhereband.musicpage.com
"
for (i=0;i<=sitems.length-1;i++)
document.write('<a href='+sitemlinks[i]+'>'+sitems[i]+'</a><br>')
</SCRIPT>
</LAYER>
<SCRIPT LANGUAGE="JavaScript1.2">
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers)
setTimeout("window.onresize=regenerate",400)
}
window.onload=regenerate2
if (document.all){
document.write('</div>')
themenu=document.all.slidemenubar2.style
rightboundary=0
leftboundary=-150
}
else{
themenu=document.layers.slidemenubar
rightboundary=150
leftboundary=10
}
function pull(){
if (window.drawit)
clearInterval(drawit)
pullit=setInterval("pullengine()",50)
}
function draw(){
clearInterval(pullit)
drawit=setInterval("drawengine()",50)
}
function pullengine(){
if (document.all&&themenu.pixelLeft<rightboundary)
themenu.pixelLeft+=5
else if(document.layers&&themenu.left<rightboundary)
themenu.left+=5
else if (window.pullit)
clearInterval(pullit)
}
function drawengine(){
if (document.all&&themenu.pixelLeft>leftboundary)
themenu.pixelLeft-=5
else if(document.layers&&themenu.left>leftboundary)
themenu.left-=5
else if (window.drawit)
clearInterval(drawit)
}
</SCRIPT>
Se hai qualche problema contattami
Ciao
Carlo "Sauron" Pelliccia





www.probo.it/javascript


 


vai con il mouse sul logo JS (in basso a DX)


oppure premi il tasto "J"


----
Bye


 


Ro<*¿*>berto



Posso invece di link testuali, inserire delle immagini, che fanno da link ?

Certamente!
Là dove c'è scritto sitems[0]="LINK1" metti qualcosa del tipo
sitems[0]="<IMG SRC='imm.gif' BORDER=0>" e otterrai l'effetto che desideri
avere.
Ciao
Carlo "sauron" Pelliccia

Okkey, ancora una cosa,
è possibile (credo di si) aprire + finestre di questo tipo in uno stesso
sito ?
Ma poi sia netscape che explorer riescono a interpretare questi comandi ?
non vorrei mettere su un sito che poi è accessibile a poche persone.......
thnx
thnx
thnx

Sě, quello che tu dici č possibilissimo!
Volendo puoi anche mettere piů di un menů per pagina, devi solo adattare il
codice e cambiare alcuni riferimenti per fare in modo che due diversi menů
non si confondano tra di loro.
Se lo devi fare per pagine differenti allora il problema non sussiste
proprio, basta che duplichi il codice su ogni pagina nella quale ti serve.
Comunque stai tranquillo, il codice dovrebbe essere compatibile sia con IE
che con NN, ma naturalmente si deve trattare di versioni un attimino recenti
che supportino il JavaScript.
Ciao
Carlo "sauron" Pelliccia