Si potrebbe iniziare prima dissolvendo l'immagine, controllando la durata della dissolvenza utilizzando il primo parametro opzionale. Una volta completata la dissolvenza, verrà attivata la richiamata anonima e la sorgente dell'immagine verrà sostituita con quella nuova. In seguito, abbiamo dissolvenza nell'immagine utilizzando un altro valore di durata, misurata in millisecondi:
HTML originale:
<img src="one.png" id="one" />
JavaScript:
$('#one').hover(function() {
// increase the 500 to larger values to lengthen the duration of the fadeout
// and/or fadein
$('#one').fadeOut(500, function() {
$('#one').attr("src","/newImage.png");
$('#one').fadeIn(500);
});
});
Infine, utilizzando jQuery, è molto, molto più facile da associare gli eventi JavaScript in modo dinamico, senza utilizzare alcun attributo JavaScript sul codice HTML stesso. Ho modificato il tag originale img
in modo che contenga solo gli attributi src
e id
.
L'evento jQuery hover garantisce che la funzione venga attivata quando l'utente passa sopra l'immagine con il mouse.
Per ulteriori letture, vedere anche jQuery fadeOut e jQuery fadeIn.
Possibili problemi con i tempi di caricamento immagine:
Se è la prima volta che un utente ha oscillato sopra un'immagine e fare una richiesta di esso, ci potrebbe essere un leggero problema tecnico nel reale fadeIn, dal momento che non ci sarà essere latente dal server mentre sta richiedendo newImage.png. Una soluzione per questo è precaricare questa immagine. Ci sono diverse risorse su StackOverflow on preloading images.
ha funzionato, grazie – zafrani
Prego! Sono felice di poterti aiutare. – jmort253