Animación simple utilizando fadeIn y fadeOut de jQuery
19 oct
Hace poco os enseñamos como trabajar con las funciones fadeIn y fadeOut de jQuery, pero con ejemplos poco prácticos, hoy vamos a darle un uso bastante práctico para hacer pequeñas animaciones sin Flash, con HTML y jQuery.
Empezaremos como siempre, añadiendo jQuery a nuestro sitio web, y vamos a definir unas variables de tiempo, para poder cambiar rápidamente la duración de nuestra animación, el tiempo del fade, el tiempo de inicio, etc.
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var tiempo_inicio_anim = 200;
var tiempo_entre_img = 3000;
var tiempo_fade = 1000;
});
</script>
Una vez hemos definido las variables, utilizando setTimeout vamos a ejecutar una función con la variable tiempo_inicio_anim que nos dirá cuando ejecutar la animacion:
<script type="text/javascript">
$(document).ready(function(){
var tiempo_inicio_anim = 200;
var tiempo_entre_img = 3000;
var tiempo_fade = 1000;
function animacion_simple() {
}
setTimeout(function() {
animacion_simple();
}, tiempo_inicio_anim);
});
</script>
A los 200 milisegundos como indica la variable tiempo_inicio_anim, ejecutaremos la función animacion_simple();
Vamos a añadir 3 imágenes para hacer fadeIn y fadeOut.
<div class="animacion_img"> <img src="foto1.jpg" width="600" height="450" class="foto1" /> <img src="foto2.jpg" width="600" height="450" class="foto2" /> <img src="foto3.jpg" width="600" height="450" class="foto3" /> </div>
Una vez que ya tenemos hecho el principio de nuestro script para que inicie la animación, y el HTML con las 3 imágenes, vamos a hacer la animación tirando de fadeIn y fadeOut, mostrando y ocultando las 3 imágenes de nuestro ejemplo:
<script type="text/javascript">
$(document).ready(function(){
var tiempo_inicio_anim = 200;
var tiempo_entre_img = 3000;
var tiempo_fade = 1000;
function animacion_simple() {
// Mostramos la foto 1
$(".foto1").fadeIn(tiempo_fade);
// Cuando pasen otros 3000 milisegundos, ocultamos la foto 1 y mostramos la foto 2
setTimeout(function() {
// Ocultamos la foto 1
$(".foto1").fadeOut(tiempo_fade);
// Mostramos la foto 2
$(".foto2").fadeIn(tiempo_fade);
}, tiempo_entre_img);
// Cuando pasen otros 3000 milisegundos, ocultamos la foto 2 y mostramos la foto 3
setTimeout(function() {
// Ocultamos la foto 2
$(".foto2").fadeOut(tiempo_fade);
// Mostramos la foto 3
$(".foto3").fadeIn(tiempo_fade);
}, tiempo_entre_img*2);
// Cuando pasen otros 3000 milisegundos, ocultamos la foto 3 y volvemos a iniciar la animación
setTimeout(function() {
// Ocultamos la foto 3
$(".foto3").fadeOut(tiempo_fade);
// Iniciamos otra vez la animación
animacion_simple();
}, tiempo_entre_img*3);
}
//Empezamos la animación a los 200 milisegundos
setTimeout(function() {
animacion_simple();
}, tiempo_inicio_anim);
});
</script>
Ya tenemos el Script terminado, se podría haber hecho un poco más automático, buscando el número de imágenes dentro del div animacion_img, pero para empezar, es un ejemplo bastante sencillo y creo que legible y facil de entender para todos.
Aquí tenéis el ejemplo.

Comentarios