Foros del Web » Programando para Internet » Javascript »

Animacion infinita

Estas en el tema de Animacion infinita en el foro de Javascript en Foros del Web. hola foreros que tal, vengo con un problema al cual no le he podido dar solucion. Tengo una animacion con jquery donde cada uno de ...
  #1 (permalink)  
Antiguo 09/01/2012, 14:05
Avatar de Oscar_Hidro  
Fecha de Ingreso: septiembre-2011
Ubicación: Aguascalientes, Mexico.
Mensajes: 200
Antigüedad: 12 años, 7 meses
Puntos: 25
Pregunta Animacion infinita

hola foreros que tal, vengo con un problema al cual no le he podido dar solucion. Tengo una animacion con jquery donde cada uno de los elementos que comforman mi animacion, tiene un efecto propio. La animacion funciona, pero quiero que no nada mas funcione, si no que se repita infinitamente el proceso. El codigo de mi animacion es este:

Código Javascript:
Ver original
  1. $("#ws_images").ready(function(){
  2.     $(".1, .2, .4, .5").fadeOut(0);
  3.     $(".1").fadeIn(0);
  4.     $(".2").fadeIn(2000,function(){
  5.         $(".3").animate({width:715, height:68},2000, function(){
  6.             $(".4").fadeIn(1000);
  7.         });
  8.     });
  9. });

Espero me puedan ayudar.
  #2 (permalink)  
Antiguo 09/01/2012, 14:24
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Animacion infinita

eso suena a usar un temporizador (setInterval)
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 09/01/2012, 18:03
Avatar de Oscar_Hidro  
Fecha de Ingreso: septiembre-2011
Ubicación: Aguascalientes, Mexico.
Mensajes: 200
Antigüedad: 12 años, 7 meses
Puntos: 25
Respuesta: Animacion infinita

Gracias Isabel por tu orientación. Nuevamente estoy aqui para pedir tu asesoria, puesto que implemento mi código de la siguiente manera, y no logro obtener el resultado.

Código Javascript:
Ver original
  1. function anim(){
  2. $("#ws_images").ready(function (){
  3.     $(".1, .2, .4, .5").fadeOut(0);
  4.     $(".1").fadeIn(0);
  5.     $(".2").fadeIn(2000,function(){
  6.         $(".3").animate({width:715, height:68},2000, function(){
  7.             $(".4").fadeIn(1000);
  8.         });
  9.     });
  10. });
  11. };
  12. setInterval(anim());

Ojala me puedan ayudar al respecto para encontrar el error. Saludos a todos
  #4 (permalink)  
Antiguo 09/01/2012, 20:19
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: Animacion infinita

Hola de nuevo oscar...

Pues.. de primera instancia... no entiendo por que utilizar el ready para un objeto en especifico.. en vez de asignarlo globalmente al documento....

otra cosa.. es que estas usando el setInterval.. pero no le estas asignando tiempo...
este procedimiento requiere 2 parametros....

setInterval('function()', tiempo)

en todo caso sería así

setInterval('anim();', 1000); //esto es igual a 1 segundo

Espero ayudarte.. Saludos y Éxito...
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #5 (permalink)  
Antiguo 11/01/2012, 14:19
Avatar de Oscar_Hidro  
Fecha de Ingreso: septiembre-2011
Ubicación: Aguascalientes, Mexico.
Mensajes: 200
Antigüedad: 12 años, 7 meses
Puntos: 25
Respuesta: Animacion infinita

Hugo, un gusto saludarte nuevamente. Fijate que traté de implementar el setInterval a mi animacion, pero no es lo que busco. Opte por utilizar lo que se llama "cola de efectos", que a diferencia del setInterval, no me ejecuta la repeticion cada cierto tiempo, si no que la ejecuta al termino de la secuencia de efectos.

La razon por la que necesito, o creo que es la forma correcta para resolver mi problema, es que tengo un slide de imagenes que van una tras otra y al terminar de mostrarlas, se inicia nuevamente la secuencia.

Para esto, en la primera imagen, hago una secuencia de efectos en jquery de la siguiente manera:
Código Javascript:
Ver original
  1. $(".1, .2, .4").fadeOut(0);
  2.     $(".1").fadeIn(0);
  3.     $(".2").fadeIn(2000,function(){
  4.         $(".3").animate({width:715, height:68},2000, function(){
  5.             $(".4").fadeIn(1000);});});

Hasta aqui todo bien.

En mi pagina hay 4 estilos diferentes, para mostrarse cada cierto tiempo en el transcurso de una hora. Eso incluye las imagenes del slide. Ambas cosas(estilos e imagenes) las he logrado desarrollar en jquery sin mucho problema.

Un problema se da, que cuando termina el slide de imagenes, de dar la primera vuelta, inicia nuevamente en la primera imagen, que es la que deberia hacer los efectos, y simplemente muestra las imagenes sobrepuestas sin efecto alguno.

De alguna forma, no hay tanto problema, por que me interesa que la animacion se vea siempre al cargar la pagina.

El problema (y gran problema ) que tengo, es que para lograr cargar las imagenes animadas, lo tengo estructurado de esta manera:

Código HTML:
Ver original
  1. <img class="1" src="images/mbn.png" alt="image1" id="wows0" name="bn" />
  2. <img class="2" src="images/m1n.png" style="position:absolute; top:-273px; left:0px;" name="color" />
  3. <img class="3" src="images/linkn.png" style="position:absolute; top:-200px; left:0px; width:715px; height:68px;" name="link" />
  4. <img class="4" src="images/ctmn.png" style="position:absolute; top:-190px; left:30px; height:165px; width:243px; z-index:90;" name="moneda"/>
  5.  
  6. </span>
  7.  
  8. <span><img src="images/tn.png" alt="image3"  id="wows1" name="tabla"/></span>
  9. <span><img src="images/fn.png" alt="image3"  id="wows2" name="flecha" /></span>
  10. <span><img src="images/ln.png" alt="image4"  id="wows3" name="lupa" /></span>
  11. <span><img src="images/wn.png" alt="image5"  id="wows4" name="mundo" /></span>
  12. <span><img src="images/bn.png" alt="image6"  id="wows5" name="baraja" /></span>
  13. <span><img src="images/pn.png" alt="image7"  id="wows6" name="lapiz" /></span>

Cada <spam> representa una imagen. En el primer<spam> estan las imagenes animadas de un color, en este caso naranja. Pero cuando cargo los estilos e imagenes en color verde por ejemplo, al terminar la primera vuelta el slide, no solamente no me carga la animacion, si no que me carga las imagenes de la animacion en color naranja(como viene en el html). Y solamente este primer <spam> es el que no me respeta desde la primera vuelta. Las demas imagenes si me las sigue generando con los estilos y el color acorde a la hora asignada.

Que puedo hacer para que me respete la los colores de la primera animacion despues de la primera vuelta del slide?

Saludos!!!
  #6 (permalink)  
Antiguo 12/01/2012, 07:50
Avatar de domibonza  
Fecha de Ingreso: enero-2012
Mensajes: 16
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Animacion infinita

Estimado, creo que esto te puede servir, ahi tienen un ejemplo de un loop infinito

http://www.w3schools.com/js/js_timing.asp
  #7 (permalink)  
Antiguo 12/01/2012, 14:19
Avatar de Oscar_Hidro  
Fecha de Ingreso: septiembre-2011
Ubicación: Aguascalientes, Mexico.
Mensajes: 200
Antigüedad: 12 años, 7 meses
Puntos: 25
Respuesta: Animacion infinita

Gracias por tu aportacion @IsabelIM, @domibonza, e @hugo. Desafortunadamente ni siquiera generando el script para que lo repita, me corrigiò ese detalle.

Peeeeeeeero, improvise con php. Se que este es foro de javascript, pero pongo el mètodo de la solución que implemente por si acaso a alguien le sirviera esta solucion o lo tomara como un tip.

A final de cuentas lo que yo necesitaba era un slide de imagenes de determinado color, y que este se mostrara con el estilo css de mi pagina con los colores mismos del slide. Es decir, tengo mi pagina de un color con algunas partes en verde, y que cuando se mostrara en este coor, apareciera el slide con imagenes en verde. Si la pagina era naranja, que mostrara las imagenes en naranja.

El cambio de estilos lo logrepor medio de un script jquery

Código Javascript:
Ver original
  1. day = new Date();
  2. minutes = day.getMinutes();
  3. seconds = day.getSeconds()
  4. time = minutes+"."+seconds;
  5. if(time>=0 && time<3.44 || time>=15.0 && time<18.44 || time>=30.0 && time<33.44 || time>=45.0 && time<48.44){
  6. document.write("<link rel='stylesheet' type='text/css' href='css/orange.css' id='estilo1'/>");
  7. }
  8. else if(time>=3.45 && time<7.29 || time>=18.45 && time<22.29 || time>=33.45 && time<37.29|| time>=48.45 && time<52.29){
  9. document.write("<link rel='stylesheet' type='text/css' href='css/green.css' id='estilo1'/>");
  10. }
  11. else if(time>=7.30 && time<11.14 || time>=22.30 && time<26.14 || time>=37.30 && time<41.14 || time>=52.30 && time<56.14){
  12. document.write("<link rel='stylesheet' type='text/css' href='css/_red.css' id='estilo1'/>");
  13. }
  14. else if(time>=11.15 && time<14.59 || time>=26.15 && time<29.59 || time>=41.15 && time<44.59 || time>=56.15 && time<59.59){
  15. document.write("<link rel='stylesheet' type='text/css' href='css/blue.css' id='estilo1'/>");
  16. }

Como se ve, puse intervalos de tiempo en minutos y segundos para que al momento de accesar, se mostrara cualquiera de estos estilos.

Y con php genere 4 slides(uno de cada color), y simplemente mande a llamarlos de la misma manera que los estilos, solo que ahora con php:

Código PHP:
Ver original
  1. <?php
  2. $minutes = date(i);
  3. $seconds = date(s);
  4. $time = $minutes.'.'.$seconds;
  5. /*$time = date("i:s");*/
  6. if($time>=0.00 && $time<3.44 || $time>=15.0 && $time<18.44 || $time>=30.0 && $time<33.44 || $time>=45.0 && $time<48.44){
  7. include('sliden.php');
  8. }
  9. else if($time>=3.45 && $time<7.29 || $time>=18.45 && $time<22.29 || $time>=33.45 && $time<37.29|| $time>=48.45 && $time<52.29){
  10. include('slidev.php');
  11. }
  12. else if($time>=7.30 && $time<11.14 || $time>=22.30 && $time<26.14 || $time>=37.30 && $time<41.14 || $time>=52.30 && $time<56.14){
  13. include('slider.php');
  14. }
  15. else if($time>=11.15 && $time<14.59 || $time>=26.15 && $time<29.59 || $time>=41.15 && $time<44.59 || $time>=56.15 && $time<59.59){
  16. include('slideb.php');
  17. }
  18. ?>
  19.  
  20. Puse el mismo intervalo de tiempo para el slide de cada color, y asi muestra los dos elementos(pagina y slide) al mismo tiempo. Mi intencion era hacerlo todo con jquery, pero tuvo sus detalles que no pude corregir, asi que busque esta solucion alternativa dandome el resultado que yo queria
  21.  
  22. Saludos a todos y gracias por su atencion. :cool:

Etiquetas: animacion, bucle, jquery
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.