Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/01/2014, 18:49
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 12 años
Puntos: 22
De acuerdo Respuesta: ¿Cómo lograr animaciones de ida y vuelta con CSS?

Cita:
Iniciado por pzin Ver Mensaje
Pues estuve probando con poco éxito...

¿Poco éxito?

Yo diría que lo hiciste bien, nuevamente, maestro pzin.

Aunque quizá con lo de poco éxito te refieras a ese anti-estético efecto del inicio : cuando se carga la página, inmediatamente se ejecuta la animación llamada reducir, que hace que se meta el div en el costado izquierdo de la pantalla. Uno diría: "pero yo quiero que ese div se anime sólo cuando yo le ponga o le quite el cursor de encima, ¡no tantes!".

De cualquier modo, lo hiciste y eso vale un punto más.

Abrí este post en el foro de CSS con el fin de encontrar solución en CSS, lo sé. Pero dadas las dificultades planteadas por los aquí presentes, me desmoralicé . Así que traté de echarme una mano con un poco de javascript. La cosa resultó bien. Dejo el código aquí, para a quien le interese (voy a postear mi solución con js porque no saben cómo odio -- a esa gente que pide ayuda en los foros y cuando logran solucionar por sí solos, o por otra parte, sus problemas, regresan al foro a postear algo así como: "ya solucioné mi problema, adiós". Y uno se queda con las palabras en la boca: "Sí, %$&()#$, pero dinos cómo le hiciste, que los foros son para eso, para ayudarnos todos, no para que te quedes la información y las respuestas para ti solo!"):


Código CSS:
Ver original
  1. @-webkit-keyframes ida
  2. {
  3.     0%   {-webkit-transform:translateX(0px);}
  4.     25%  {-webkit-transform:translateX(500px);}
  5.     55%  {-webkit-transform:translateX(300px);}
  6.     75%  {-webkit-transform:translateX(500px);}
  7.     90%  {-webkit-transform:translateX(450px);}
  8.     100% {-webkit-transform:translateX(500px);}
  9. }
  10. @-webkit-keyframes vuelta
  11. {
  12.     0%   {-webkit-transform:translateX(500px);}
  13.     25%  {-webkit-transform:translateX(0px);}
  14.     55%  {-webkit-transform:translateX(300px);}
  15.     75%  {-webkit-transform:translateX(0px);}
  16.     90%  {-webkit-transform:translateX(100px);}
  17.     100% {-webkit-transform:translateX(0px);}
  18. }
  19.  
  20. #caja {
  21.     position:relative;
  22.     top:0px;
  23.     left:-600px;
  24.     width:700px;
  25.     height:100px;
  26.     background-color:black;
  27. }


Código Javascript:
Ver original
  1. window.onload = function()
  2.     {
  3.         var caja = document.getElementById("caja");
  4.        
  5.         caja.addEventListener('mouseover',function()
  6.         {
  7.             caja.style.webkitAnimationName = 'ida';
  8.             caja.style.webkitAnimationDuration = '1s';
  9.             caja.style.webkitAnimationFillMode = 'forwards';
  10.             caja.style.webkitAnimationIterationCount = '1';
  11.             caja.style.webkitAnimationTimingFunction = 'ease';
  12.  
  13.         },false)
  14.  
  15.         caja.addEventListener('mouseout',function()
  16.         {
  17.             caja.style.webkitAnimationName = 'vuelta';
  18.             caja.style.webkitAnimationDuration = '1s';
  19.             caja.style.webkitAnimationFillMode = 'forwards';
  20.             caja.style.webkitAnimationIterationCount = '1';
  21.             caja.style.webkitAnimationTimingFunction = 'ease';
  22.  
  23.         },false)
  24.     }


Código HTML:
Ver original
  1. <div id="caja"></div>


Saludos cordiales

Última edición por berkeleyPunk; 09/01/2014 a las 19:59