Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Javascript - Blocco funzione in loop ad un dato evento
Forum - Javascript - Blocco funzione in loop ad un dato evento

Avatar
Lidirot (Normal User)
Newbie


Messaggi: 14
Iscritto: 21/09/2009

Segnala al moderatore
Postato alle 17:31
Giovedì, 26/04/2012
salve a tutti
il problema che mi si pone è il seguente:
devo realizzare un immagine statica che si animi quando ci si passa sopra con il mouse. quindi ho sfruttato la seguente stringa di html:

<td><a href="fornitore.cfm"><img id="SlideShow" src="forn4.gif" height="60px" width="60px" name="SlideShow" onmouseover=runSlideShow() onmouseout="src='forn4.gif'") /></a></td>

la funzione richiamata è la seguente:

function runSlideShow(){

    if (document.all){
        document.images.SlideShow.style.filter="blendTrans(duration=2)"
        document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"
        document.images.SlideShow.filters.blendTrans.Apply()
    }
    document.images.SlideShow.src = preLoad[j].src
    if (document.all){
        document.images.SlideShow.filters.blendTrans.Play()
    }
    j = j + 1
    if (j > (p-1)) j=0;
    if (j!=0)
        t=setTimeout('runSlideShow(0)',slideShowSpeed);
}

il problema, ovviamente, è che la funzione va in loop perchè ricorsiva senza opzione. quello che vorrei mettere è l'uscita dalla funzione quando l'utente sposta il mouse dall'immagine, quindi una cosa tipo

if (onmouseout==false)
t=setTimeout('runSlideShow(0)',slideShowSpeed);


e credo che in questo modo dovrebbe uscire in caso il puntatore non sia più sull'immagine.
il problema è che non so come ottenere lo stato del puntatore all'interno della funzione.
qualcuno mi può aiutare? grazie in anticipo :) ciao

Ultima modifica effettuata da Lidirot il 26/04/2012 alle 17:32
PM Quote
Avatar
Sevenjeak (Normal User)
Pro


Messaggi: 91
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 7:57
Sabato, 28/04/2012
Prova modificando il codice html, che definisce l'immagine, in questo modo:

Codice sorgente - presumibilmente Plain Text

  1. <img id="SlideShow" src="forn4.gif" height="60px" width="60px" name="SlideShow" onmouseover="runSlideShow()" onmouseout="this.src = 'forn4.gif'; clearTimeout(t)" />



All'interno dell'attributo onmouseout ti sei dimenticato di usare il this, per riferirti all'oggetto corrente ( con src li dici di riferirsi all'attributo src, ma di cosa? mentre con this.rsc gli dici di riferirsi all'attributo src di quell'elemento ), crealTimeout dovrebbe fermare l'esecuzione della funzione setTimeout().

Purtroppo il codice non l'ho provato e non saprei dirti se funziona.

PM Quote
Avatar
Lidirot (Normal User)
Newbie


Messaggi: 14
Iscritto: 21/09/2009

Segnala al moderatore
Postato alle 11:08
Lunedì, 07/05/2012
grazie mille :) ho riarmeggiato un pochino modificando con il this.src e ora torna

PM Quote