Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2014, 16:59
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 12 años
Puntos: 22
Pregunta Problema con addEventListener!

No se me ocurrió una forma sucinta de referenciar mi problema en un título. Perdón.

La idea es esta:
Tengo 3 divs: dos en forma de cuadro y el otro en círculo. Quisiera que al darle clic a un cuadrado se traslade el círculo 100px en Y. Y que al darle clic al otro cuadrado se repita la acción, a saber, que el mismo círculo se mueva desde donde estaba originalmente y corra los mismos 100px en Y.

El código que tengo no hace lo que quiero, porque al darle click al 2do cuadrado, el círculo ya está 100px en Y. ¿Cómo se le hace para que de alguna manera se reinicie la función que mueve el círculo?

Aquí el código que llevo:
Código CSS:
Ver original
  1. #caja1, #caja2, #caja3 {display:inline-block; width:100px; height:100px; background-color:#999;}
  2. #bola {width:100px; height:100px; background-color:black; border-radius:50px;}


Código Javascript:
Ver original
  1. window.onload = function()
  2. {
  3.   caja1 = document.getElementById("caja1");
  4.   caja2 = document.getElementById("caja2");
  5.   bola  = document.getElementById("bola");
  6.  
  7.   caja1.addEventListener("click", moverBola, false);
  8.   caja2.addEventListener("click", moverBola, false);
  9.  
  10.  
  11.   function moverBola()
  12.   {
  13.       bola.style.WebkitTransform = "translateY(100px)";
  14.   }
  15. }

Código HTML:
Ver original
  1. <div id="caja1">Caja 1</div>
  2.   <div id="caja2">Caja 2</div>
  3.  
  4.   <div id="bola"></div>


Estuve googleando y vi que quizá, talvez, el removeEventListener sirva a mi propósito, pero el caso es que no he logrado hacer que funcione.
Ya intenté hacerlo con animaciones CSS, de modo que cuando se dé clic se anime la ida. El resultado de esto es que sólo se anima la ida en el 1er clic. En el 2do clic ya no se anima nada. Imagino que porque la bola ya está en el destino y no en el origen. ¿Pero cómo hacer que a cada clic, se reinicie el movimiento de la bola?

Alguna idea?

Saludos cordiales

Última edición por berkeleyPunk; 16/01/2014 a las 17:17