Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema tra eventi

  1. #1

    Problema tra eventi

    Buon giorno!

    Scrivo qui per chiedervi una mano circca un problema che sto avendo in javascript. Vi mando il link dell'esempio, così capite meglio: LINK.

    Ciò che vorrei ottene è un menù che appaia quando il mouse è compreso tra 0px e NUMpx del fondopagina, over, e che scompaia quando il mouse esce da esso, out.

    Avevo provato ad ottenerlo con i div, però quando dal menù vado su un img si attiva in qualsiasi modo l'evento onmouseout del menù, chiudendosi.

    Come potrei risolvere?

    Ringraziamenti anticipati,
    Lollinos

  2. #2
    Secondo me se aggiungi alle immagini la stessa funzione che richiama il div all'evento over dovrebbe funzionare.
    Dovresti però cambiare la tua funzione over così:
    codice:
     function load(x) {            document.getElementById(x).style.marginBottom = "-2px";            document.getElementById(x).style.opacity = "1.0";        }        function over(x) {            document.getElementById(x).style.marginBottom = "-2px";            document.getElementById(x).style.opacity = "1.0";        }        function bo(x) {        	window.setTimeout("p('" + x + "')", 500);        }        function p(x) {            document.getElementById(x).style.marginBottom = "-30px";            document.getElementById(x).style.opacity = "0.0";        	cnt = 0;        }        function button(x, y) {            document.getElementById(y).style.width = "60px";            document.getElementById(y).style.height = "60px";            document.getElementById(x).style.width = "60px";            document.getElementById(x).style.height = "60px";        }        function out(x, y) {            document.getElementById(y).style.width = "40px";            document.getElementById(y).style.height = "40px";            document.getElementById(x).style.width = "40px";            document.getElementById(x).style.height = "40px";        }
    a così:
    codice:
    function over(x,n_btn) {document.getElementById(x).style.marginBottom = "-2px";            document.getElementById(x).style.opacity = "1.0"; botton("button_"+n_btn,n_btn);    }
    così lei ti richiama il button_one o two ma solo se il parametro è verificato... ho cambiato i parametri che la funzione over si aspetta quindi, al div menu aggiungera ,'' così gli passi il secondo parametro ma essendo vuoto non fa nulla, se invece è !='' da vuoto e != null allora richiama la funzione button passandogli button_XXX e XXX... Prova così e fammi sapere.
    Credo nelle idee che diventano azioni. [E. Pound]
    Le cose perdonabili sono, in verità, pochissime. [Y. Mishima]

  3. #3
    Innanzi tutto grazie della risposta

    Purtroppo l'effetto è lo stesso

    Potrebbe essere una soluzione guardare se l'attivazione dell'evento over delle immagini è true o false?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    puoi capire quale elemento sta scatenando l'evento di mouseout utilizzando il parametro relatedTarget dell'oggetto event. Questo ti permette di bloccare l'esecuzione dello script quando relatedTarget corrisponde ad una delle tue immagini.

    Esempio:
    codice:
    function nascondiMenu(event){
       if(event.relatedTarget.id == "myimg"){
    		 return false;
       }
       //nascondiMenu
    }

  5. #5
    uhm, interessante!

    Avrei due domande da fare:
    - event che variabile è? Percaso sarebbe document.getElementbyId("miodiv").omuseout?
    - il valore false in che variabile viene ritornato? Oppure serve ad uscire dal metodo?

  6. #6

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.