Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    ritardardo in javascript

    Ciao,

    Ho una semplicissima funzione javascript che nasconde un div,
    vorrei che dal momento in cui la funzione viene chiamata al momento in cui il div viene nascosto passasse mezzo secondo.

    Come fare?

    Grazie a tutti
    http://www.easymemo.it - vCard ed agenda

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    [battuta] cosa e` il ritardardo? una freccia che arriva in ritardo?[/battuta]

    Puoi usare la funzione setTimeout() :

    setTimeout('funzione("ev.parametri")', 500);

    mettilo esattamente dove avevi la tua funzione.

    Se non capisci posta il codice: e` difficile far modifiche su un codice che non si vede.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    al posto di richiamare la tua funzione chiama la funzione Ritardo() che dopo mezzo secondo richiamerà la tua funzione.

    codice:
    <script>
    function tuaFunzione(){
      //......
    }
    
    function Ritardo(){
     window.setTimeout("tuaFunzione()",500)
    
    }
    
    </script>

  4. #4
    Ciao,

    in realtà sto utilizzando la funzione di dreamweaver, e la chiamo così:

    setTimeout('MM_showHideLayers(''sistemi'','''',''h ide'')', 1000);

    originariamente era così:
    MM_showHideLayers('sistemi','','hide')

    Solo che mi da un errore di parentisi ) mancante alla fine della riga.

    Mi sembra tutto giusto, ma non so...

    Per occhio crepato, purtroppo la funzione di dreamweaver è incasinata, quando la chiami gli passi tre parametri, ma in realtà quando la funzione viene dichiarata non prende niente in ingresso...
    è così:

    function MM_showHideLayers()
    {
    }
    http://www.easymemo.it - vCard ed agenda

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mi sembra un errore di apici.

    prova cosi`:
    codice:
    setTimeout("MM_showHideLayers('sistemi','','hide')", 500);
    Nota che ho scambiato apici e virgolette rispetto al mio primo post.

    Non puoi giudicare le funzione di MM da quello che vedi: di solito sono incasinate al massimo (credo che lo siano apposta), e non riesci a capirle, se non con studi approfonditi.


    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Mi dice errore di sintassi...
    http://www.easymemo.it - vCard ed agenda

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'ultima sintassi che ti ho dato non dovrebbe avere errori, ma non puo` stare dentro ad altre virgolette o apici (ad esempio dentro un evento HTML).

    In quel caso devi usare la sintassi di OcchioCrepato.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Ho riscritto la funzione MM_showHideLayers, adesso al mouse over viene mostrato il livello (un menu a tendina) al mouseout viene chiamata la funzione ritardo che nasconde il livello dopo 100 millisecondi.

    Però vorrei che se l'utente rimetta il mouse sul tasto prima che sia scaduto il time out l'azione venga annullata. Cioè se l'utente esce e rientra velocemnte sul tasto il livello non deve sparire.

    codice:
    function MM_showHideLayers(livello, stato) { //v6.0
    if (stato=='vis'){
    		document.getElementById(livello).style.visibility='visible'
    	}
    	if (stato=='nasc'){
    		document.getElementById(livello).style.visibility='hidden'
    	}
    }
    
    function Ritardo(livello, stato){
     window.setTimeout("MM_showHideLayers('" + livello + "', '" + stato + "')",100)
    }

    Graqzie ancora
    http://www.easymemo.it - vCard ed agenda

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Devi fare un clrTimeout appena entrato nella funzione.

    Ti serve pero` una variabile globale per passare il timer:
    codice:
    var ttt;
    function MM_showHideLayers(livello, stato) { //v6.0
    window.clrTimeout(ttt);
    if (stato=='vis'){
    		document.getElementById(livello).style.visibility='visible'
    	}
    	if (stato=='nasc'){
    		document.getElementById(livello).style.visibility='hidden'
    	}
    }
    
    function Ritardo(livello, stato){
    ttt = window.setTimeout("MM_showHideLayers('" + livello + "', '" + stato + "')",100)
    }
    PS. Se modifichi una funzione di altri non dovresti tenere un nome probabilmente coperto da copyright (dovresti togliere il MM_ iniziale).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.