Newsgroup: it.comp.lang.javascript
Titolo: DIFFICILE: Rendere un'immagine semi-attiva in Netscape

Il problema è questo. Devo fare un menu (di una semplicita' ridicola) a
tendina in Javascript, ma non voglio scrivere un codice infinito come
quelli che ho visto in giro.
Il trucco che userei volentieri è questo:
I layer dei veri menu sono tutti sopra ad un'immagine fissa, di sfondo.
Il livello di menu accende i livelli di sottomenu, e quando il cursore
passa sopra all'immagine di sfondo (e quindi non è sopra ad alcun menu),
azzero i sottomenu.
Se nel mondo esistesse solo Explorer (qui lo dico e qui lo nego) i miei
problemi sarebbero gia' risolti. Purtroppo, però, esiste anche Netscape,
il quale non ammette che si possa fare onMouseover anche su di
un'immagine che non ha il tag <a href="...">, ergo: in Netscape non
funziona un tubo.
Una soluzione, sarebbe mettere il tag <a> sull'immagine, ma non mi piace
che sull'immagine di sfondo appaia il cursore dei link, ne' tanto meno
che Netscape vi lasci sopra la clessidra, anche se metto tutti i "return
false" possibili e immaginabili...
Qualcuno ha una soluzione, per far capire a Netscape ceh deve
considerare l'onMouseover anceh per le immagin? Oppure, qualcuno sa
indicarmi un sito con un codice semplice per fare i menu a tendina?
PS: qualcuno di voi mi chiederà "Ma ce ne sono a migliaia, in giro,
prendine uno a caso e non rompere..."; il problema e' che la nostra
pagina sta diventando pesantissima, e non posso permettermi degli script
da 40k come quelli che ho visto in giro.
--
     Filini
------------------------------
Believe it or not
I'm walking on air
I never thought I could feel so free
Flying away on a wing and a prayer
Who could it be?
Believe it or not it's just me.

 funziona un tubo.
Hai già fatto qualcosa???
Se ci fai vedere lo script vediamo cosa si può fare!
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.aticommerce.com
http://www.afdsoftware.freeweb.org
http://www.jsdir.com
http://www.javascript.3000.it

 Se ci fai vedere lo script vediamo cosa si può fare!
Ho gia' fatto tutto. Lo script funziona cosi':
<p><img src="sfondo.gif" onMouseover="azzeraMenu();" name="sfondo"></p>  <!--
questo e' il mio sfondo -->
<div id="menu" style="... visibility:visible">  <!-- questo livello attiva il
sottomenu -->
    <p><a onMouseover="accendi('sottomenu1');">VOCE DEL MENU 1</a></p>
</div>
<div id="sottomenu1" style="... visibility:hidden">  <!-- questo levello e' il
sottomenu, che si accende e spegne -->
    <p><a href="pagina.htm">VOCE DEL SOTTOMENU</a></p>
</div>
I due livelli sono in parte sovrapposti l'uno all'altro, e posizionati sopra
all'immagine di sfondo, cosi' quando il mouse esce da essi, e va quindi sullo
sfondo, il sottomenu viene nascosto. In Explorer e' una chicca di
perfezione... Netscape non ci pensa neppure, perché non vede l'onMouseover
sull'immagine 'sfondo.gif'
Se metto <a href="..."> sull'immagine 'sfondo.gif' diventa tutto
bruttissimo...


"Filini" <fil...@geocities.SPAMMATEVISTAFAVAcom> ha scritto nel messaggio
news:3A192545...@geocities.SPAMMATEVISTAFAVAcom...

Io non starei tanto a preoccuparmi per NN4.......
di sicuro dopo l'uscita di NN6 definitiva .......l'unico codice che scriverò
per problemi come il tuo per NN4 sarà......
if(document.layers){ alert('aggiorna il browser a NN6!') }
piuttosto........hai verificato di avere la compatibilità con NN6??


 piuttosto........hai verificato di avere la compatibilità con NN6??
Non ancora... ma se funziona su N4 e non su N6 giuro che faccio causa alla
Netscape...


 Netscape...
Se lavori con i livelli devi specificare anche NN6.....perchè non rientra ne
in document.all ne in document.layers ma in
document.getElementById..........cmq su 
http://www.jsdir.com
 Tutorials  ci
sono due tutorials sull'argomento....


"Filini" <fil...@geocities.SPAMMATEVISTAFAVAcom> ha scritto nel
messaggio news:3A192545...@geocities.SPAMMATEVISTAFAVAcom...

[]
Hai inviato poco codice per avere certezza sul problema.
Se come sembra il div sottomenu1 e' in posizionato puoi inserirci un
layer per attivare onMouseOut:
<div id="sottomenu1"  style="position:absolute; top:100;
left:50;visibility:hidden;">
<!-- questo livello e' il sottomenu, che si accende e spegne -->
<layer onMouseOut="spegni('sottomenu1')">
    <p><a href="pagina.htm">VOCE DEL SOTTOMENU</a></p>
    <p><a href="pagina.htm">VOCE DEL SOTTOMENU</a></p>
    <p><a href="pagina.htm">VOCE DEL SOTTOMENU</a></p>
    <p><a href="pagina.htm">VOCE DEL SOTTOMENU</a></p>
</layer>
</div>
Se la questione e' piu' complessa, come credo, e' necessario vedere il
codice completo.
Con NS6 non esistono piu' i layer ne come tag ne come collezione ma
viene utilizzato il DOM standardizzato (speriamo); per indicare un
oggetto si puo' usare il metodo di document getElementById('valoreID').
Prepara per i documenti per la causa :-)))
Saluti, Paolo

 if(document.layers){ alert('aggiorna il browser a NN6!') }
Attento. Attualmente sono piu' gli utenti NS4.x che NN6.0... Soprattutto se
consideri che, bene o male, NS4.x alla fin fine si rivela piu' "sicuro" di
NN6.0 Final Release..!
Soprattutto alla luce anche di quel che ho sentito ultimamente su questo NG
(rif. Riccardo Riccardi, ad esempio).
Non sono molto sicuro che, ad esempio i Linuxisti, cambieranno la loro copia
di NS 4.x con una "untested" di NN6.0...
Cmq io continuero' a supportare NS 4.x, almeno finche' non uscira' una
versione *REALMENTE* definitiva di NN6.0...

 Netscape...
Inizia a chiamare il tuo avvocato e compilare i moduli per avviare la
pratica...