Puede usar transiciones CSS3 o quizás animaciones CSS3 para deslizar un elemento.
Para soporte de navegador: http://caniuse.com/
Hice dos ejemplos rápidos solo para mostrarle a qué me refiero.
Transición CSS (al pasar el mouse)
Demo One
Código relevante
.wrapper:hover #slide {
transition: 1s;
left: 0;
}
En este caso, solo estoy cambiando la posición de left: -100px;
a0;
con un 1s. duración. También es posible mover el elemento usandotransform: translate();
Animación CSS
Demo Two
#slide {
position: absolute;
left: -100px;
width: 100px;
height: 100px;
background: blue;
-webkit-animation: slide 0.5s forwards;
-webkit-animation-delay: 2s;
animation: slide 0.5s forwards;
animation-delay: 2s;
}
@-webkit-keyframes slide {
100% { left: 0; }
}
@keyframes slide {
100% { left: 0; }
}
El mismo principio que el anterior (Demo uno), pero la animación se inicia automáticamente después de 2 s, y en este caso lo he instalado animation-fill-mode
aforwards
, que persistirá el estado final, manteniendo el div visible cuando los extremos de animación.
Como dije, dos ejemplos rápidos para mostrarle cómo podría hacerse.
EDITAR:
para obtener más información sobre las animaciones y transiciones CSS, consulte:
Animaciones
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_animations
Transiciones
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_transitions
Espero que esto haya ayudado.
Christofer Vilander
fuente