Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/02/2014, 22:10
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 2 meses
Puntos: 977
Respuesta: ¿Cómo hacer transform:translate con puro javascript?

Viendo el ejemplo en la página que dejaste, hice algo distinto:

Código HTML:
Ver original
  1. <div id = "capa"></div>
  2. <button id = "ar">Arriba</button>
  3. <button id = "ab">Abajo</button>
  4. <button id = "iz">Izquierda</button>
  5. <button id = "de">Derecha</button>

Código CSS:
Ver original
  1. #capa{
  2.     position: absolute;
  3.     background: radial-gradient(ellipse, white, yellow);
  4.     width: 50px;
  5.     height: 50px;
  6.     margin-top: 5em;
  7.     border: .1em #aa0 solid;
  8. }

Código Javascript:
Ver original
  1. var div = document.getElementById("capa");
  2.  
  3. window.addEventListener("click", function(e){
  4.     switch(e.target.id){
  5.         case "ar":
  6.             div.style.top -= 2;  
  7.         break;
  8.      
  9.         case "ab":
  10.             div.style.bottom -= 2;
  11.         break;
  12.      
  13.         case "iz":
  14.             div.style.left -= 2;  
  15.         break;
  16.      
  17.         case "de":
  18.             div.style.right -= 2;
  19.         break;
  20.     }
  21. }, false);

De este modo, cada vez que de un clic, tomo el Id del elemento al que se le dio el clic (target = elemento objetivo) y según el Id, muevo el Div hacia una dirección en particular. Te dejo otra opción para hacerlo, utilizando el método animate de jQuery:

Código Javascript:
Ver original
  1. $(window).click(function(e){
  2.     switch (e.target.id){
  3.         case "ar":
  4.             $("#capa").animate({top: "-=5em"}, 300);
  5.         break;
  6.        
  7.         case "ab":
  8.             $("#capa").animate({top: "+=5em"}, 300);
  9.         break;
  10.        
  11.         case "iz":
  12.             $("#capa").animate({left: "-=5em"}, 300);
  13.         break;
  14.        
  15.         case "de":
  16.             $("#capa").animate({left: "+=5em"}, 300);
  17.         break;
  18.     }
  19. });

El resultado: http://jsbin.com/turiq/1

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand