Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2011, 09:49
Avatar de Heent
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!