Estoy dando mis primeros pasos con jquery, y me gustaría ver si podéis ayudarem, porque hay algo que, por más que lo intento, no logro entender:
estoy intentando hacer que una etiqueta img vaya tomando diferentes imagenes de un array (son 3 imagenes), y que el cambio se haga mediante un fadeIn.
Lo que ocurre es que, por más que lo intento, sólo consigo que se vualice la ú,tima imagen del array. Sé que las imagenes cambian correctamente (o eso creo), por los resultados que arroja el alert del código.
Mi código es este:
Código HTML:
Ver original
<img id="foto4" src="imagen1.jpg"/>
Y el código jquery que debería ejecutar lo que quiero:
Código Javascript:
Ver original
var almacenFotos=['imagen2.jpg','imagen3.jpg'];/*para hacer el fade en la misma foto*/ $.each(almacenFotos,function (indice, valor) { //alert("valor del indice "+indice+" : "+valor); $("#foto4").fadeOut(2000); $("#foto4").attr('src',valor).fadeIn(2000); } );
Parece como si el cambio de atributo src se ejecutara demasiado rápido, por un lado, de manera que apenas puede apreciarse a la vista...
De hecho, por otra parte, el alert que he dejado comentado, y que se ejecuta por cada elemento, demuestra efectivamente que las imagenes van apareciendo correctamente... lo que sucede es que es cuando se llega al último elemento del array, que se ejecutan todos los fade in...
No lo entiendo, la verdad. He probado con un for en vez de con el método each y ocurre lo mismo. Algo debe fallar en mi lógica pero no veo que es :(
Si podéis ayudarme os estaría muy agradecido.