Foros del Web » Programando para Internet » Javascript »

Cambiar coordenadas de un div

Estas en el tema de Cambiar coordenadas de un div en el foro de Javascript en Foros del Web. Hola buenas! Soy nuevo en esto de javascript y tengo muchas dudas. Me he leido la típica guía práctica pero que no me dice lo ...
  #1 (permalink)  
Antiguo 26/05/2014, 15:27
VFF
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Cambiar coordenadas de un div

Hola buenas! Soy nuevo en esto de javascript y tengo muchas dudas. Me he leido la típica guía práctica pero que no me dice lo que quiero hacer en este mismo instante.

Imagino que será muy sencillo pero aquí va:


Quiero mover la posición (coordenadas) de un div cuando pase por encima con el ratón.

Como creo esta líneas de código? Me estoy liando mucho y definitivamente necesito ayuda!

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 26/05/2014, 15:30
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 10 meses
Puntos: 30
Respuesta: Cambiar coordenadas de un div

muestra un poco de tu codigo, solo un poco aunque sea, si no va a ser dificil.
  #3 (permalink)  
Antiguo 26/05/2014, 15:57
VFF
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Cambiar coordenadas de un div

Cita:
Iniciado por Albuss Ver Mensaje
muestra un poco de tu codigo, solo un poco aunque sea, si no va a ser dificil.
Sería absolutamente desde cero.

simplemente que si =

<div id = "moverDiv"></div>

Está en la coordenada 0 de X. Al pasar el ratón por encima se desplace a la coordenada 500. ( Interpolación de movimiento suavizado?)

Estoy hecho un lio completamente :(

No sé como crear esta función.

Gracias de antemano
  #4 (permalink)  
Antiguo 26/05/2014, 16:22
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 10 meses
Puntos: 30
Respuesta: Cambiar coordenadas de un div

a ver, tienes que estudiar el DOM, como acceder mediante JS y utilizarlo para aplicar cambios y stilos con CSS.

empieza desde aqui : http://librosweb.es/javascript/capitulo_5.html
  #5 (permalink)  
Antiguo 26/05/2014, 16:39
VFF
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Cambiar coordenadas de un div

Cita:
Iniciado por Albuss Ver Mensaje
a ver, tienes que estudiar el DOM, como acceder mediante JS y utilizarlo para aplicar cambios y stilos con CSS.

empieza desde aqui : [url]http://librosweb.es/javascript/capitulo_5.html[/url]
Muchas gracias, voy a ojearlo!
  #6 (permalink)  
Antiguo 26/05/2014, 19:38
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Cambiar coordenadas de un div

Algo asi... quizas ?

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>No molestar!</title>
  4. <style>
  5.     body {background-color: #000;} 
  6.    
  7.     h1 {color: white;}
  8.  
  9.    #moverDiv
  10.    {
  11.         width:350px;
  12.         height:350px;
  13.         background-image: url("http://oi54.tinypic.com/28k3pjo.jpg");
  14.         border: red 2px;
  15.         position:relative;
  16.    }
  17. </style>
  18. </head>
  19. <body>
  20. <h1> No me molestes </h1>
  21.  
  22. <div id = "moverDiv"></div>
  23.  
  24. <script>
  25.     // @author: Pablo Bozzolo
  26.    
  27.     function moveMeHor(elem,cant,smooth)
  28.     {
  29.         smooth = smooth || false;
  30.        
  31.         elem.removeEventListener('mouseover',miHandler,false);
  32.        
  33.         if (!smooth){
  34.             elem.style.left = cant;
  35.             return;
  36.         }  
  37.    
  38.         (function(){           
  39.            
  40.             i = 0;
  41.             inter = setInterval(function()
  42.             {  
  43.                 if (i==cant)
  44.                 {              
  45.                     clearInterval(inter);
  46.                     i = 0;
  47.                     //div.addEventListener ('mouseover',miHandler,false);
  48.                 }  
  49.                
  50.                 if (i>cant)
  51.                 {              
  52.                     clearInterval(inter);
  53.                     i=0;
  54.                     elem.removeEventListener('mouseover',miHandler,false);
  55.                 }
  56.                
  57.                 elem.style.left = i;
  58.                 console.log(i);
  59.                 i++;
  60.                
  61.             },1);
  62.         })();  
  63.        
  64.        
  65.     }
  66.        
  67.     window.onload = function()
  68.     {  
  69.         div = document.getElementById('moverDiv'); 
  70.  
  71.         miHandler = function(){moveMeHor(div,500,true);};  
  72.    
  73.         // espero un tiempito segundo antes de registrar el mouseover  
  74.         setInterval(function(){
  75.             div.addEventListener ('mouseover',miHandler,false);
  76.         },500);
  77.     }
  78.        
  79. </script>
  80. </body>
  81. </html>

Si a moveMeHor() le quitas el tercer parametro (que es opcional) o le colocas false, se mueve de una vez.

PD: alquien (quizas Alexis88) sabe porque no funciona en jsFiddle ?
__________________
Salu2!

Última edición por Italico76; 27/05/2014 a las 12:16
  #7 (permalink)  
Antiguo 27/05/2014, 17:54
VFF
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Cambiar coordenadas de un div

Cita:
Iniciado por Italico76 Ver Mensaje
Algo asi... quizas ?

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>No molestar!</title>
  4. <style>
  5.     body {background-color: #000;} 
  6.    
  7.     h1 {color: white;}
  8.  
  9.    #moverDiv
  10.    {
  11.         width:350px;
  12.         height:350px;
  13.         background-image: url("http://oi54.tinypic.com/28k3pjo.jpg");
  14.         border: red 2px;
  15.         position:relative;
  16.    }
  17. </style>
  18. </head>
  19. <body>
  20. <h1> No me molestes </h1>
  21.  
  22. <div id = "moverDiv"></div>
  23.  
  24. <script>
  25.     // @author: Pablo Bozzolo
  26.    
  27.     function moveMeHor(elem,cant,smooth)
  28.     {
  29.         smooth = smooth || false;
  30.        
  31.         elem.removeEventListener('mouseover',miHandler,false);
  32.        
  33.         if (!smooth){
  34.             elem.style.left = cant;
  35.             return;
  36.         }  
  37.    
  38.         (function(){           
  39.            
  40.             i = 0;
  41.             inter = setInterval(function()
  42.             {  
  43.                 if (i==cant)
  44.                 {              
  45.                     clearInterval(inter);
  46.                     i = 0;
  47.                     //div.addEventListener ('mouseover',miHandler,false);
  48.                 }  
  49.                
  50.                 if (i>cant)
  51.                 {              
  52.                     clearInterval(inter);
  53.                     i=0;
  54.                     elem.removeEventListener('mouseover',miHandler,false);
  55.                 }
  56.                
  57.                 elem.style.left = i;
  58.                 console.log(i);
  59.                 i++;
  60.                
  61.             },1);
  62.         })();  
  63.        
  64.        
  65.     }
  66.        
  67.     window.onload = function()
  68.     {  
  69.         div = document.getElementById('moverDiv'); 
  70.  
  71.         miHandler = function(){moveMeHor(div,500,true);};  
  72.    
  73.         // espero un tiempito segundo antes de registrar el mouseover  
  74.         setInterval(function(){
  75.             div.addEventListener ('mouseover',miHandler,false);
  76.         },500);
  77.     }
  78.        
  79. </script>
  80. </body>
  81. </html>

Si a moveMeHor() le quitas el tercer parametro (que es opcional) o le colocas false, se mueve de una vez.

PD: alquien (quizas Alexis88) sabe porque no funciona en [URL="http://jsfiddle.net/boctulus/gdgLD/5/"]jsFiddle[/URL] ?


Voy a comprobarlo, muchas gracias por tu atención!

Etiquetas: coordenadas
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:24.