Foros del Web » Programando para Internet » Javascript »

Detener un bucle

Estas en el tema de Detener un bucle en el foro de Javascript en Foros del Web. Buenas compañeros. Me encuentro con un problema que es el siguiente: Tengo un bucle for y quiero que pasen 500 milisegundos entre cada iteración del ...
  #1 (permalink)  
Antiguo 15/12/2011, 09:49
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 6
Pregunta Detener un bucle

Buenas compañeros. Me encuentro con un problema que es el siguiente:

Tengo un bucle for y quiero que pasen 500 milisegundos entre cada iteración del bucle porque modifico el fondo de un div. Es decir quiero que la ejecución se detenga un tiempo mínimo para poder ver el nuevo fondo.

He probado con setTimeOut pero primero termina el bucle y después se ejecutan las otras cosas.

He definido una función que viene a ser más o menos como la de php sleep que se llama eSleep() el código esta después del del for

Este es el código del for:

Código Javascript:
Ver original
  1. for(var i = 0; i<3; i++){
  2.       var url = "url('fondo"+ i +".gif')";
  3.       eSleep(1000);
  4.       elementoDiv.css("background-image",url); //uso  JQuery para modificar el fondo
  5. }

Código Javascript:
Ver original
  1. function eSleep(millisegundos) {
  2.         var inicio = new Date().getTime();
  3.         for (var i = 0; i < 10000000; i++) {
  4.             if ((new Date().getTime() - inicio) > millisegundos){
  5.                 break;
  6.             }
  7.         }
  8.     }

Sin embargo solo se me ve el último fondo, es decir el fondo2.gif

Ideas de lo que puede pasar?


Muchas gracias!
  #2 (permalink)  
Antiguo 15/12/2011, 10:54
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 187
Respuesta: Detener un bucle

Te dejo acá un ejemplo que hice de FONDOS cambiantes, es muy probable que te sirva. Esta separado en dos funciones, una que es la responsable de cambiar el fondo y la otra que genera el loop.
Lo hice js fiddle: http://jsfiddle.net/p4bl1t0/96kSU/
Saludos
  #3 (permalink)  
Antiguo 15/12/2011, 11:30
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 6
Respuesta: Detener un bucle

Muchas gracias! Me ha ido perfecto =)!!!
  #4 (permalink)  
Antiguo 15/12/2011, 12:15
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 16 años, 2 meses
Puntos: 187
Respuesta: Detener un bucle

De nada. Me alegra que te haya servido

Etiquetas: bucle, detener, momento
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 18:18.