Foros del Web » Programando para Internet » Javascript »

mover divs con javascript mediante botones

Estas en el tema de mover divs con javascript mediante botones en el foro de Javascript en Foros del Web. Hola buenas, veran tengo un problemilla a ver si pueden ayudarme. Necesito conseguir que varios divs, 3, colocados todos en horizontal en una posicion mas ...
  #1 (permalink)  
Antiguo 05/10/2013, 10:55
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
mover divs con javascript mediante botones

Hola buenas, veran tengo un problemilla a ver si pueden ayudarme.

Necesito conseguir que varios divs, 3, colocados todos en horizontal en una posicion mas o menos alta en el "top" de la pantalla y que haya un menu de botones (un boton para cada div) en el cual cuando haces un click al boton1 , el div 1 se coloca mas abajo en la pantalla,

cuando se haga click en el boton 2 entonces el div 1 recupere su posicion inicial arriba en el top y baje en su lugar el div 2 , y lo mismo con el 3.


He buscado hasta la saciedad en internet pero solo veo ejemplos de como mediante botones cambiar un solo div en el espacio arriba y abajo a derecha e izquierda sin limite ni tampoco se como añadirles mas divs ni limitar los botones a un solo click.

Os pondre lo que tengo de codigo pero si puedieran ayudarme les estaria muy agradecido.

Gracias de antemano.


Código CSS:
Ver original
  1. <style type="text/css">
  2.  
  3. #parrafo {position:absolute; top:500px; left:300px; width:200px; height:100px; background-color: #99FFFF}
  4.  
  5. </style>



Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.  
  3. function MoverTexto(id,d){
  4.  
  5. var bloque=document.getElementById(id);
  6.  
  7. var x=(document.defaultView && document.defaultView.getComputedStyle) ?
  8. document.defaultView.getComputedStyle(bloque,'').getPropertyValue("top") :
  9. bloque.currentStyle ? bloque.currentStyle.top : "";
  10.  
  11.  
  12. var y=(document.defaultView && document.defaultView.getComputedStyle) ?
  13. document.defaultView.getComputedStyle(bloque,'').getPropertyValue("left") :
  14. bloque.currentStyle ? bloque.currentStyle.left : "";
  15.  
  16. x= parseInt(x);
  17.  
  18.  
  19. switch(d){
  20. case "arriba": x -=200; break;
  21. case "abajo": x +=200; break;
  22. }
  23. bloque.style.top=x+"px";
  24.  
  25. }
  26.  
  27. </script>



Código HTML:
Ver original
  1. <a href="#" onclick="MoverTexto('parrafo', 'arriba');">Arriba<a/>
  2. <a href="#" onclick="MoverTexto('parrafo', 'abajo');">Abajo<a/>
  3.  
  4. <div id="parrafo"></div>
  #2 (permalink)  
Antiguo 05/10/2013, 13:09
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: mover divs con javascript mediante botones

Para empezar tus elementos deben ser elementos posicionados(relative,absolute o fixed)

Despues el onclick en cada boton(div1(),div2(),div3())

El cuerpo de div1 que baja el div numero 1 seria algo asi:

function div1()
{
document.getElementById(div1).style.top = "200px";
}

div2 que sube div1 y baja div numero 2

function div2()
{
document.getElementById(div1).style.top = "0px";
document.getElementById(div2).style.top = "200px";
}

div3 que sube div2 y baja el div numero 3

function div3()
{
document.getElementById(div2).style.top = "0px";
document.getElementById(div3).style.top = "200px";
}

pienso que seria asi

saludos
  #3 (permalink)  
Antiguo 05/10/2013, 13:33
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: mover divs con javascript mediante botones

Muchas gracias por guiarme a dar con la solucion intentare algo en este sentido y si doy con lo clave lo posteare aqui.

Pero una cosa: se podria mediante los botones hacer que un div (cualquiera de ellos) baje abajo , y el que se halle abajo anteriormente se suba arriba automaticamente pero sea cual sea o tienen que tener nombres especificos cada div?

Y otra cosa, el codigo que he puesto hace que cuando se hace click en los botones el div se mueva, eso esta bien pero es que solo necesito que hagan dos operaciones los botones 2 click , uno para subir el div y otro para bajar el div , en las posicion absoluta o relativa que se le indique previamente y nada mas.

pero es que el codigo que he puesto se puede mover indefinidamente (hacia arriba y abajo) haciendo click

y claro eso no es lo que necesito en este caso.

Gracias de nuevo.

Última edición por mensajeescrito; 05/10/2013 a las 13:41
  #4 (permalink)  
Antiguo 05/10/2013, 14:40
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: mover divs con javascript mediante botones

Se van moviendo indefinidamente por que vas sumando lo anterior mas el incremento actual por eso solo puse 200 y 0 estatico, osea arriba y abajo

En cuanto a la primera pregunta
deberias comprobar que div esta abajo y subirlo, y ahora si bajar el div esperado para hacer esto es facil solo tendrias que seleccionar todos los div ya sea con getelementbyid o con getelementsbytagname y despues ver cual style.top es 200(el div esta abajo) y entonces establecer 0(subir el div), ya luego bajarias el div actual
Como todos los botones haran lo mismo solo usaras una funcion

Basicamente es aplicar esto
if(style.top == 200){style.top=0;}

saludos
  #5 (permalink)  
Antiguo 06/10/2013, 03:24
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: mover divs con javascript mediante botones

He intentado hacer lo que me has dicho, de hecho te muestro lo que he hecho para ver si esta bien, pero no funciona ,soy novato en javascript . Seria genial que me saliera esto por que opdria resolver con esto un gran problema que tengo.

Gracias de antemano.

Aqui lo que llevo hecho ( pero no funciona no se porque):

Código CSS:
Ver original
  1. <style type="text/css">
  2.      
  3.         #div1 {position:absolute;  left:300px; width:100px; height:100px; background-color: #99FFFF}
  4.         #div2 {position:absolute;  left:500px; width:100px; height:100px; background-color: #99FFFF}
  5.         #div3 {position:absolute;  left:700px; width:100px; height:100px; background-color: #99FFFF}    
  6.        
  7.     </style>



Código Javascript:
Ver original
  1. <script>  
  2.    
  3.         function div1()
  4.         {
  5.         document.getElementById(div1).style.top = "200px";
  6.         }
  7.        
  8.         /*div2 que sube div1 y baja div numero 2*/
  9.        
  10.         function div2()
  11.         {
  12.         document.getElementById(div1).style.top = "0px";
  13.         document.getElementById(div2).style.top = "200px";
  14.         }
  15.        
  16.         /*div3 que sube div2 y baja el div numero 3*/
  17.        
  18.         function div3()
  19.         {
  20.         document.getElementById(div2).style.top = "0px";
  21.         document.getElementById(div3).style.top = "200px";
  22.         }  
  23.      
  24.  
  25.         if(style.top == 200){style.top=0;}   
  26.            
  27.     </script>



Código HTML:
Ver original
  1.  
  2.     <a href="#" onclick="div1();">Abajo 1<a/>
  3.     <a href="#" onclick="div2();">Abajo 2<a/>
  4.     <a href="#" onclick="div3();">Abajo 3<a/>
  5.    
  6.          
  7.     <div id="div1">div 1</div>    
  8.     <div id="div2">div 2</div>    
  9.     <div id="div3">div 3</div>    
  10.    
  11.  
  12. </body>

Etiquetas: botones, divs, mediante
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 21:04.