Mostrando entradas con la etiqueta css3. Mostrar todas las entradas
Mostrando entradas con la etiqueta css3. Mostrar todas las entradas

Tutorial Animaciones y efectos botones CSS3 - Entrega 2



   En esta entrega de animaciones y efectos para botones con CSS3 os muestro otros 4 efectos para dar a vuestros botones. Podéis encontrar el código en el siguiente enlace:


   El primer efecto consiste en que el botón se mueva hacia arriba, como si estuviese flotando (efecto float). El tipo de animación es una transición de transformación. Podemos ponerle una propiedad para el tiempo (transition-timing-function) para que se acelere al final, al principio, etc. Cuando pasamos el puntero por encima del botón (evento hover) lo que hacemos es mover el botón en el eje Y hacia arriba con un valor negativo (traslateY(-10px)).


   El otro efecto es similar al anterior, lo que cambia es que en vez de moverse hacia arriba se mueve hacia abajo (down). Únicamente tenemos que cambiar el traslateY en el evento hover.

   El tercer efecto es que cuando pasemos el puntero, aparezca una flecha al lado de nuestro botón. En este caso vamos a utilizar pseudo-elementos en css, en concreto :before. Con esto lo que hacemos es añadir contenido después del contenido original. Tenemos que utilizar la propiedad de css content.
   El código es el siguiente:


   Crearemos un triángulo y calculamos el centro con (left: calc(50%-10px);) y le daremos borde y color. Dependiendo de dónde queramos que salga el triángulo o flecha (top, bottom,right,left) tenemos que cambiar esas tres propiedades de css. Así por ejemplo si queremos que salga hacia arriba utilizariamos:
top: calc(50%-10px);
border-width: 0 10px 10px 10px;

   Por último cuando es el evento hover lo que tenemos que hacer es mover este triángulo hacia afuera con traslateY. Dependiendo de donde pongamos la flecha se trasladará en un eje u otro y positivo o negativo.

   El último efecto es rellenar el fondo del botón desde el centro gradualmente.
   Vamos a crear un cuadrado (que al principio no se ve) y lo vamos a ir agrandando hasta que ocupe todo el fondo. La animación consiste en ir agrandando ese cuadrado hasta que ocupe las dimensiones del botón.


   NOTA: no podemos utilizar estos dos últimos efectos, que utilizan pseudo-elementos, con un botón creado con la etiqueta input. Esto es debido a que input no es un contenedor, por lo que no va a funcionar el efecto.

   Para saber más de pseudo-elementos en css:
http://librosweb.es/libro/css_avanzado/capitulo_3/pseudo_elementos.html

Tutorial Animaciones y efectos botones CSS3 - Entrega 1



   Os muestro a continuación unos efectos para añadir a vuestros botones con CSS3. Son bastante sencillos e iré haciendo más tutoriales con más efectos.

   Vamos a ver los efectos de agrandar (grow), reducir (shrink) y una combinación de ambos que es en forma de pulso (pulse). Hay varias formas de hacer botones, con un  div <div>, con un enlace <a>, con un input del tipo botón <input type button>, con la etiquete button <button> con una imagen <img>, etc. Yo he ilustrado este tutorial con los cuatro primeros para que veáis que es exactamente igual el resultado independientemente de cómo hagáis el botón. Simplemente hay que añadir la clase correspondiente.


   Para comenzar me he creado 4 botones de cuatro formas diferentes. Les he añadido estilos para centrarlos, ponerles colores y demás. No voy a poner ese código aquí, pero si os lo podeis descargar. El código que realmente nos interesa es el de la animación en sí. Para el efecto grow, he creado una clase en css3 y es la siguiente:


   Esta clase se la tenemos que asignar a un botón para que tenga ese efecto.

   Los otros dos efectos son los siguientes:



   Podemos jugar con los valores para aumentar más el efecto de agrandar o disminuirlo, también la duración de ese efecto. La propiedad que hace que un objeto se agrande o disminuya es transform: scale(1.1) y para la duracción utilizaremos transition-duration. Notad que he añadido las líneas necesarias para que estos efectos se reproduzcan en cualquier navegador.

   En el caso de la animación pulse, lo que hemos hecho es usar la de agrandar y reducir, y cambiara a partir del porcentaje que le hemos indicado en el keyframes. Por último la animación se la indicamos con animation-name  y le ponemos el nombre del keyframes. A parte hay otros valores que podéis ver en el ejemplo

    Por último en nuestro html tenemos que asignar las clases a los botones.


   Podéis ver un ejemplo en JSFIDDLE o descargarlos en GITHUB.

Sandra Campos

Comparte si te gusta