Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] mover a la izquierda un div

Estas en el tema de mover a la izquierda un div en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function desaparece ( ) {     var ocultar = document. getElementById ( "menuDeslizante" ) ;     ...
  #1 (permalink)  
Antiguo 05/02/2014, 10:45
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
mover a la izquierda un div

Código Javascript:
Ver original
  1. function desaparece(){
  2.     var ocultar=document.getElementById("menuDeslizante");
  3.     var ocultar2=document.getElementById("menuDeslizante2");
  4.     var parar=false;
  5.     var counter=0;
  6.     do{
  7.     alert("hola mundo");
  8.     counter++;
  9.     ocultar.style.marginLeft="-"+counter+"%";
  10.     if(counter==30){
  11.         parar=true;
  12.     }
  13.     }while(parar==false);
  14. }
  15.  
  16. function timeout()
  17.    {
  18.       setTimeout("desaparece()", 3000);
  19.    }
  20. window.onload=function (){
  21. timeout();
  22. }
Pues me gustaria mover a la izquierda un div de forma continuada, hasta que se saliera de la pagina web. Si tengo puesto un alert (como ahora) y le voy dando a aceptar se va moviendo un poco cada vez, pero si quito el alert me lo mueve entero a la izquierda de una vez. Y yo quiero que lo mueva poco a poco como lo hago con el alert, pero sin el alert.

Un saludo, gracias y espero sus respuestas
  #2 (permalink)  
Antiguo 05/02/2014, 11:06
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: mover a la izquierda un div

Con el alert podías ya que es totalmente blocking.

El error se debe a que la funcion "desaparece" viene con el bucle, y en sí ya estás haciendo bucle invocando a la función cada 30 segundos.

Elimina el do...while y utiliza clearInterval dentro del if para limpiar el intervalo cuando supere el 30%
  #3 (permalink)  
Antiguo 05/02/2014, 11:17
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: mover a la izquierda un div

Cita:
Iniciado por PHPeros Ver Mensaje
Con el alert podías ya que es totalmente blocking.

El error se debe a que la funcion "desaparece" viene con el bucle, y en sí ya estás haciendo bucle invocando a la función cada 30 segundos.

Elimina el do...while y utiliza clearInterval para limpiar el intervalo cuando supere el 30%
He cogido un ejemplo de [URL="http://www.w3schools.com/jsref/met_win_cleartimeout.asp"]W3schools[/URL] para usar el clearTimeout (no se muy bien la diferencia entre el interval y el Timeout, si tambien pudieras responder a esto te lo agradeceria muchisimo) y no hace nada
Código Javascript:
Ver original
  1. var algo;
  2. function desaparece()
  3. {
  4.     var ocultar=document.getElementById("menuDeslizante");
  5.     var counter=0;
  6.     var parar=false;
  7.     counter++;
  8.     ocultar.style.marginLeft="-"+counter+"%";
  9.     if(counter==30){
  10.         myStopFunction();
  11.         parar=true;
  12.     }
  13. }
  14.  
  15. function timeout()
  16. {
  17.     algo=setInterval("desaparece()", 3000);
  18. }
  19.  
  20. function myStopFunction()
  21. {
  22.     clearInterval(algo);
  23. }
  24.  
  25. window.onload=function ()
  26. {
  27.     timeout();
  28. }
Por cierto, gracias por responder :)

PD: Lo he editado. Lo hace una vez, pero no sigue moviendolo mas de una vez :/ por eso creo que necesito algun bucle, para que siga repitiendo la accion varias veces.

Última edición por Mechabits; 05/02/2014 a las 11:27
  #4 (permalink)  
Antiguo 05/02/2014, 11:28
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: mover a la izquierda un div

Pongo el código correcto con interval:

Código Javascript:
Ver original
  1. var ocultar=document.getElementById("menuDeslizante");
  2. var ocultar2=document.getElementById("menuDeslizante2");
  3. var parar=false;
  4. var counter=0;
  5.    
  6. function desaparece(){
  7.     counter++;
  8.     ocultar.style.marginLeft="-"+counter+"%";
  9.     if(counter==30){
  10.         clearInterval(interval);
  11.     }
  12. }
  13.  
  14. function timeout(){
  15.     var interval = setInterval("desaparece()", 1000);
  16. }
  17. window.onload=function(){
  18. timeout();
  19. }
  #5 (permalink)  
Antiguo 05/02/2014, 11:39
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: mover a la izquierda un div

Uncaught TypeError: Cannot read property 'style' of null menuDeslizante.js:8
desaparece menuDeslizante.js:8
(anonymous function)

Me da ese error. Siento entretenerte tanto. Y gracias por la molestia como siempre :)

Un saludo
  #6 (permalink)  
Antiguo 05/02/2014, 11:43
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: mover a la izquierda un div

Código Javascript:
Ver original
  1. function desaparece(){
  2.  
  3.     var ocultar=document.getElementById("menuDeslizante");
  4.     var ocultar2=document.getElementById("menuDeslizante2");
  5.     var parar=false;
  6.     var counter=0;
  7.  
  8.     counter++;
  9.     ocultar.style.marginLeft="-"+counter+"%";
  10.     if(counter==30){
  11.         clearInterval(interval);
  12.     }
  13. }
  14.  
  15. var interval = setInterval("desaparece()", 1000);
  #7 (permalink)  
Antiguo 05/02/2014, 11:50
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: mover a la izquierda un div

compila bien, sin errores, pero no lo hace. Al menos te doy el punto de ayuda. Muchas gracias de todos modos :) . Si consigo la respuesta la dejo aqui
Estas invitado a seguir intentandolo tu y todo el mundo
  #8 (permalink)  
Antiguo 05/02/2014, 11:55
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: mover a la izquierda un div

Código Javascript:
Ver original
  1. var counter = 0;
  2.  
  3. function desaparece(){
  4.  
  5.     var ocultar=document.getElementById("menuDeslizante");
  6.     var ocultar2=document.getElementById("menuDeslizante2");
  7.  
  8.     counter++;
  9.     ocultar.style.marginLeft="-"+counter+"%";
  10.     if(counter==30){
  11.         clearInterval(interval);
  12.     }
  13. }
  14.  
  15. var interval = setInterval("desaparece()", 1000);
  #9 (permalink)  
Antiguo 05/02/2014, 11:56
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: mover a la izquierda un div

Cita:
Iniciado por PHPeros Ver Mensaje
Código Javascript:
Ver original
  1. var counter = 0;
  2.  
  3. function desaparece(){
  4.  
  5.     var ocultar=document.getElementById("menuDeslizante");
  6.     var ocultar2=document.getElementById("menuDeslizante2");
  7.  
  8.     counter++;
  9.     ocultar.style.marginLeft="-"+counter+"%";
  10.     if(counter==30){
  11.         clearInterval(interval);
  12.     }
  13. }
  14.  
  15. var interval = setInterval("desaparece()", 1000);
Eres genial!!!! Y muy rapido!!! Muchisimas gracias! Esta es la respuesta!
Repasare tu codigo y vere que has hecho!!! Muchisimas gracias de veras!!!!

Etiquetas: izquierda
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 02:33.