Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Submenu e mouseover

  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Submenu e mouseover

    Analisi: Creazione di un submenu con il tag <div>

    Ciao, su un link, al click sul link, visualizzo un livello (<div> il submenu) che scompare dopo un determinato numero di secondi o quando si passa con il puntatore del mouse su altri link. Fino a qui ci sono riuscito. Il problema è che vorrei che questo submenu rimanesse visibile quando il puntatore del mouse resta su questo..
    Ecco cosa ho fatto:

    Il link con il quale apro il submenu:
    Le funzioni javascript per l'apertura e chiusura del submenu:
    codice:
    	<script language="javascript">
    	function ApriChiudi(){
    	if(document.all){
    	var div1=document.getElementById("submenumission");
    	if(div1.style.visibility=="visible"){
    	div1.style.visibility="hidden";
    	times=clearTimeout(times);
    	}else{
    	div1.style.visibility="visible";
    	times=setTimeout("hide()",3000);
    	}
    	}
    	}
    	function hide(){
    	if(document.all){
    	var div1=document.getElementById("submenumission");
    	div1.style.visibility="hidden";
    	}
    	}
    		</script>
    Il livello <div> che funge da submenu:
    codice:
    	<div id="submenumission" style="BORDER-RIGHT: lightgrey 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #dcdcdc 1px solid; 
    PADDING-LEFT: 1px; LEFT: 260px; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BORDER-LEFT: #dcdcdc 1px solid; WIDTH: 230px; 
    PADDING-TOP: 1px; BORDER-BOTTOM: lightgrey 1px solid; POSITION: absolute; TOP: 205px; HEIGHT: 25px">
    				Pagina # 1 <A class="topmenu" href="pagina2.html">
    					Pagina # 2</A>Pagina # 3
    
    			</div>
    Gli altri link richiamano la funzione hide() all'onmouseover per nascondere il submenu, ad es.
    Il problema come già detto è che il submenu si chiude sempre dopo 3 secondi.. mentre io vorre che non si chiudesse quando ci sono sopra con il mouse
    Ciauz
    Voglio l'alt+s anche per FF

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Anteprima:
    Perche` non vuoi che funzioni in browser diversi da IE? Togli quei if(document.all) : le istruzion che usi funzionano in tutti i browser tranne IE5 e NN4.

    Potresti chiamare la funzione hide() tramite l'evento onmouseout, invece che farla chiamare dopo l'onmouseover.

    Mi mancano elementi (ma forse non riesco a vederli) per capire a quale oggetto applicare il mouseout.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Mich_
    Anteprima:
    Perche` non vuoi che funzioni in browser diversi da IE? Togli quei if(document.all) : le istruzion che usi funzionano in tutti i browser tranne IE5 e NN4.

    Potresti chiamare la funzione hide() tramite l'evento onmouseout, invece che farla chiamare dopo l'onmouseover.

    Mi mancano elementi (ma forse non riesco a vederli) per capire a quale oggetto applicare il mouseout.
    Grazie per la dritta
    Scusa ma non riesco a capire a cosa ti riferisci quandi dici:
    Potresti chiamare la funzione hide() tramite l'evento onmouseout, invece che farla chiamare dopo l'onmouseover.
    Mi puoi fare un esempio di cosa intendi?
    Ciao
    Voglio l'alt+s anche per FF

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Avendo queste due funzioni:
    function Apri(ogg) {
    ... apre l'oggetto pasato ...
    }

    function Chiudi() {
    ... chiude tutti gli oggetti o un oggetto definito in una variabile ...
    }

    potresti impostare gli eventi di un link cosi`:
    <a href="..." onmouseover="Apri('...');" onmouseout="setTimeout('Chiudi()', 3000);">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Mich_
    Avendo queste due funzioni:
    function Apri(ogg) {
    ... apre l'oggetto pasato ...
    }

    function Chiudi() {
    ... chiude tutti gli oggetti o un oggetto definito in una variabile ...
    }

    potresti impostare gli eventi di un link cosi`:
    <a href="..." onmouseover="Apri('...');" onmouseout="setTimeout('Chiudi()', 3000);">
    per un link ok.. ma mettiamo caso che il mouse si trova all'interno del livello ma non su un link?
    Voglio l'alt+s anche per FF

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il mouseover/mouseout si puo` applicare (in alcuni browser moderni) anche ad altri oggetti.

    Ma io mi sto perdendo. Non ho capito completamente il tuo problema specifico, e sto dando consigli al buio. Preferirei una descrizione del problema piu` dettagliata (eventualmente con del codice HTML).

    Perche` c'e` anche la possibilta` di usare i CSS, che per alcune cose sono molto piu` potenti di JS. Se fai una ricerca nel forum CSS e XHTML (sotto HTML), trovi problemi analoghi, ma senza l'uso di JS.

    E` vero che tu hai il ritardo, e questo non si puo` fare con i CSS, ma forse un approccio misto potrebbe essere valido (ed anche molto piu` accessibile).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    personalmente risolverei usando l' oggetto event
    se vuoi, studia quanto scritto in questi 2 articoli
    http://pro.html.it/articoli/id_273/idcat_27/pro.html
    http://pro.html.it/articoli/id_274/idcat_27/pro.html

    anche questi potrebbero tornarti utili
    http://pro.html.it/articoli/id_267/idcat_11/pro.html
    http://pro.html.it/articoli/id_269/idcat_11/pro.html

    ciao

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da Mich_
    Il mouseover/mouseout si puo` applicare (in alcuni browser moderni) anche ad altri oggetti.

    Ma io mi sto perdendo. Non ho capito completamente il tuo problema specifico, e sto dando consigli al buio. Preferirei una descrizione del problema piu` dettagliata (eventualmente con del codice HTML).

    Perche` c'e` anche la possibilta` di usare i CSS, che per alcune cose sono molto piu` potenti di JS. Se fai una ricerca nel forum CSS e XHTML (sotto HTML), trovi problemi analoghi, ma senza l'uso di JS.

    E` vero che tu hai il ritardo, e questo non si puo` fare con i CSS, ma forse un approccio misto potrebbe essere valido (ed anche molto piu` accessibile).
    Scusami pensavo di essere stato abbastanza chiaro.. cmq il "problema" è lo sviluppare un submenu (usando i livelli <div>) che si apre al passggio del mouse su un link o al click su un link, e che si chiude quando il mouse passa sopra un altro link o quando passa un determinato numero di secondi.. Ovviamente il menu non si dovrà chiudere quando il mouse sarà su di esso.. In parte ci sono riuscito.. il menu si apre quando clicco su un link e si chiude quando passo con il mouse su altri link o quando passano 3 secondi dall'apertura.. resta solo il fatto che il menu continua a chiudersi anche quando il mouse si trova su di esso.. dovrei in pratica eliminare il setTimeout quando il mouse si trova su submenu e poi ovviamente come mi consigliavi tu, dovrei renderlo crossbrowser..
    Con i css non vedo soluzione..
    Ah per quanto riguarda il codice html.. che cosa vuoi che ti invio? non c'è altro codice che possa inviarti..
    Voglio l'alt+s anche per FF

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da dops

    Con i css non vedo soluzione..
    Sei sicuro?

    Hai guardato cosa riescono a fare in siti tipo constile.org o csszengarden.com ?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ho visto.. certo.. non ho detto che non si può fare.. sono io che non riesco a trovare una soluzione con i css.. a me non sai quanto andrebbe bene utilizzare solo i css
    Voglio l'alt+s anche per FF

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.