Puede comenzar por desvanecer primero la imagen, controlando la duración del desvanecimiento utilizando el primer parámetro opcional. Una vez que se completa el fundido de salida, se activará la devolución de llamada anónima y la fuente de la imagen se reemplazará por la nueva. Después, la aparición gradual de la imagen utilizando otro valor de duración, medido en milisegundos:
HTML original:
<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);
});
});
Por último, el uso de jQuery, que es mucho, mucho más fácil enlazar eventos de JavaScript dinámicamente, sin usar ningún atributo de JavaScript en el HTML mismo. Modifiqué la etiqueta original img
para que solo tenga los atributos src
y id
.
El evento jQuery hover asegurará que la función se active cuando el usuario pase el ratón sobre la imagen. Para obtener más información, también vea jQuery fadeOut y jQuery fadeIn.
Posibles problemas con los tiempos de carga de imagen:
Si es la primera vez que un usuario se ha mantenido sobre una imagen y hacer una solicitud para ello, puede haber un ligero problema técnico en el fadeIn real, ya que habrá ser latencia del servidor mientras solicita newImage.png. Una solución para esto es precargar esta imagen. Hay varios recursos en StackOverflow on preloading images.
esto funcionó, gracias – zafrani
De nada! Estoy feliz de poder ayudar. – jmort253