Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: moikano→@ en 14 Julio 2012, 23:00 pm



Título: [javascript] Redimensionar con un for un div (solucionado con JQuery)
Publicado por: moikano→@ en 14 Julio 2012, 23:00 pm
Hola.

Estoy intentando redimensionar  una etiqueta "div" al cargar la página, el div debería ir de 0px a 500px en 5 segundos mas o menos.
Lo he intentado con la función "setTimeout" junto con un for y con las propiedades del div. El código es este.

Código:
function redim(){
for (i=0; i<=500; i++){
setTimeout("document.getElementById('cont').style.height=i+'px'",1000);
}
}

Es una prueba, si funcionara sería de 0px a 500px en 500 segundos. Pero me carga el div enseguida, no en 500 segundos, pasa de 0px a 500px en menos de un segundo.
Lo he probado en múltiples combinaciones anidando funciones con otras pero no he conseguido que lo haga.

Que hago mal?


Título: Re: [javascript] Redimensionar con un for un div
Publicado por: Anvil en 15 Julio 2012, 05:31 am
Me imagino que en pseudocódigo podría quedar algo asi.

Código
  1. function redim(i)
  2. {
  3. // sacamos el tamaño actual
  4. var pixels = document.getElementById('div_id').style.height;
  5. // vemos si ya estamos en el tamaño que queremos
  6. if(pixels < 500)
  7. {
  8. // si no esta hacemos la redimensión
  9. document.getElementById('div_id').style.height = i + "px";
  10. // y volvemos a llamar la función
  11. setTimeout("redim("+i*10+")",1000);
  12. }
  13. }
  14.  
  15. // función que se ejecuta en onload
  16. function onLoad()
  17. {
  18. redim(1);
  19. }
  20.  


Título: Re: [javascript] Redimensionar con un for un div
Publicado por: moikano→@ en 15 Julio 2012, 12:16 pm
Citar
function redim(i)
{
   // sacamos el tamaño actual
   var pixels = document.getElementById('div_id').style.height;
   // vemos si ya estamos en el tamaño que queremos
   if(pixels < 500)
   {
      // si no esta hacemos la redimensión
      document.getElementById('div_id').style.height = i + "px";
      // y volvemos a llamar la función
      setTimeout("redim("+i*10+")",1000);
   }
}

Probado, y no funciona, se queda con 1px de tamaño sin cambiar. No se si es un error de sintaxis o de planteamiento. Solo he cambiado cosas en la sintaxis para ver si funcionaba.


Título: Re: [javascript] Redimensionar con un for un div
Publicado por: Spider-Net en 15 Julio 2012, 21:25 pm
Y no sería más fácil hacerlo en jquery?, vamos digo yo...

Código
  1. $('#div_id').animate( { height: "500px" }, { queue: false, duration: 5000 })


Título: Re: [javascript] Redimensionar con un for un div
Publicado por: moikano→@ en 15 Julio 2012, 21:40 pm
Citar
Y no sería más fácil hacerlo en jquery?, vamos digo yo...

Código

$('#div_id').animate( { height: "500px" }, { queue: false, duration: 5000 })

Si, mucho mas fácil y totalmente valido.
Muchas gracias, lo marco como solucionado.