Las animaciones en tu sitio web hacen más interesantes e interactivos la navegación en el mismo, por eso en el siguiente tutorial te enseñaremos a crear de manera sencilla el efecto flip.
Empezaremos con el código en el html que necesitaremos, iniciando con el div que le agregaremos la clase (class=»container»), dentro de este agregamos otro div con la clase (class=»card»), y adentro pondremos las 2 caras de la tarjeta en 2 div separados, el primero con la clase (class=»front») que sería la cara frontal, y el segundo con la clase (class=»back») que sería la cara trasera de la tarjeta; el código html quedaría de esta manera:
<div class="container"> <div class="card"> <div class="front"> <h2>Titulo</h2> <hr> <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. .</p> </div> <div class="back"> <h2>Titulo</h2> <hr> <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. .</p> </div> </div> </div>
Codigo CSS
A continuación indicaremos el código css necesario para crear la animación:
/* El contenedor de la tarjeta */ .container { position: relative; float: left; /* Ancho y alto que tendra el contenedor de la tarjeta */ width: 25%; height: 250px; margin: 10px 0 10px 4%; /* Determinamos la profundidad de los elementos */ -webkit-perspective: 800px; -moz-perspective: 800px; -o-perspective: 800px; perspective: 800px; } .card { width: 100%; height: 100%; position: absolute; cursor: pointer; text-align: center; /* Determinamos la trasicion de los efectos */ -webkit-transition: -webkit-transform 0.4s; -moz-transition: -moz-transform 0.4s; -o-transition: -o-transform 0.4s; transition: transform 0.4s; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; -o-transform-style: preserve-3d; transform-style: preserve-3d; } /* Determinamos los grados de la rotación de la tarjeta */ .card.flipped { -webkit-transform: rotateY( 180deg ); -moz-transform: rotateY( 180deg ); -o-transform: rotateY( 180deg ); transform: rotateY( 180deg ); } /* */ .card .front, .card .back { display: block; height: 100%; width: 100%; color: white; text-align: center; font-size: 4em; padding: 15px; position: absolute; /*visibility hidden para esconder una cara mientras se muestra la otra */ -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; -o-backface-visibility: hidden; backface-visibility: hidden; box-shadow: 3px 5px 20px 2px rgba(0, 0, 0, 0.25); } /*Determinamos los estilos deseados en la cara de atras de la tarjeta*/ .card .back { width: 100%; font-size: 16px; text-align: left; line-height: 25px; text-align: center; background: #ff5a5a; /* Animacion para rotar la cara trasera */ -webkit-transform: rotateY( 180deg ); -moz-transform: rotateY( 180deg ); -o-transform: rotateY( 180deg ); transform: rotateY( 180deg ); } /*Determinamos los estilos deseados en la cara de delantera de la tarjeta*/ .card .front { background: #109b87; }
El Resultado visual de cada una de las caras seria:
Codigo Jquery
Para poder hacer funcionar la animación al hacer click en la cara frontal y trasera de la tarjeta crearemos una función con jquery, utilizaremos .toggleclass para poder volver a voltear las caras todas la veces deseadas.
$('.card').click(function(){ $(this).toggleClass('flipped'); });
Y asi de manera sencilla lograríamos el efecto flip en nuestro sitio web.