En la web moderna, existen numerosas técnicas que se pueden utilizar para crear interacciones interesantes, pero la más simple y elegante suele ser CSS, y específicamente las adiciones que vienen con CSS3.
En los viejos tiempos, teníamos que confiar en JavaScript para este tipo de efecto, pero gracias a la compatibilidad cada vez mayor para CSS3 en todos los navegadores, ahora es posible configurar efectos como estos sin ningún tipo de script. Desafortunadamente, todavía hay navegadores (IE9 y siguientes) que no son compatibles con CSS3, por lo que necesitará una alternativa para los navegadores heredados o para tratar el efecto como una mejora progresiva.
Hoy, vamos a ver cómo podemos aplicar efectos de vuelo fresco pero pulcro para mostrar y ocultar los títulos de las imágenes.
Si prefiere seguir el código, puede descarga los archivos aquí
La primera demostración es la más simple: la imagen volará a la derecha para revelar la leyenda.
Para nuestro CSS estableceremos el posicionamiento relativo para nuestra clase demo-1 y luego configuraremos el ancho y el alto . También ocultaremos los elementos desbordados. También puse algunos estilos básicos para mis etiquetas h2 y p , así como también mi etiqueta de imagen. Ahora para nuestra clase de efectos estableceremos el posicionamiento en absoluto y le daremos un margen de -15px en la parte superior e inferior. Utilizaremos la transición de CSS3 para crear un efecto suave. Nuestro CSS se ve así:
.demo-1 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-1 p,.demo-1 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-1 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-1 h2 {font-family:'Lato';font-size:20px;line-height:24px;margin:0;}.effect img {position:absolute;margin:-15px 0;right:0;top:0;cursor:pointer;-webkit-transition:top .4s ease-in-out,right .4s ease-in-out;-moz-transition:top .4s ease-in-out,right .4s ease-in-out;-o-transition:top .4s ease-in-out,right .4s ease-in-out;transition:top .4s ease-in-out,right .4s ease-in-out}.effect img.top:hover {top:-230px;right:-330px;padding-bottom:200px;padding-left:300px}
Nuestra segunda demostración mostrará la imagen deslizándose hacia abajo. Esto significa que cuando coloca el mouse sobre la imagen, el título se mostrará encima.
Nuestro CSS será casi el mismo que el primer demo, excepto que esta vez moveremos nuestra imagen hacia abajo configurando la parte inferior de la propiedad a -96px. También usaremos la transición de CSS3 para crear un efecto suave:
.demo-2 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px;background-color:rgba(26,76,110,0.5)}.demo-2 p,.demo-2 h2 {color:#fff;padding:10px;left:-20px;top:20px;position:relative}.demo-2 p {font-family:'Lato';font-size:12px;line-height:18px;margin:0}.demo-2 h2 {font-size:20px;line-height:24px;margin:0;font-family:'Lato'}.effect img {position:absolute;left:0;bottom:0;cursor:pointer;margin:-12px 0;-webkit-transition:bottom .3s ease-in-out;-moz-transition:bottom .3s ease-in-out;-o-transition:bottom .3s ease-in-out;transition:bottom .3s ease-in-out}.effect img.top:hover {bottom:-96px;padding-top:100px}h2.zero,p.zero {margin:0;padding:0}
Para nuestra última demostración, crearemos un efecto de tarjeta de intercambio. Esto significa que cuando coloca el mouse sobre la imagen, girará sobre su eje para revelar la descripción.
En nuestro CSS, estableceremos la imagen de la figura en una posición relativa y luego ocultaremos la visibilidad de la cara posterior . También usaremos la transformación rotateY : -180 grados para figcaption y luego la cambiaremos a 180 grados para el desplazamiento de la imagen y el título:
.demo-3 {position:relative;width:300px;height:200px;overflow:hidden;float:left;margin-right:20px}.demo-3 figure {margin:0;padding:0;position:relative;cursor:pointer;margin-left:-50px}.demo-3 figure img {display:block;position:relative;z-index:10;margin:-15px 0}.demo-3 figure figcaption {display:block;position:absolute;z-index:5;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.demo-3 figure h2 {font-family:'Lato';color:#fff;font-size:20px;text-align:left}.demo-3 figure p {display:block;font-family:'Lato';font-size:12px;line-height:18px;margin:0;color:#fff;text-align:left}.demo-3 figure figcaption {top:0;left:0;width:100%;height:100%;padding:29px 44px;background-color:rgba(26,76,110,0.5);text-align:center;backface-visibility:hidden;-webkit-transform:rotateY(-180deg);-moz-transform:rotateY(-180deg);transform:rotateY(-180deg);-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure img {backface-visibility:hidden;-webkit-transition:all .5s;-moz-transition:all .5s;transition:all .5s}.demo-3 figure:hover img,figure.hover img {-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);transform:rotateY(180deg)}.demo-3 figure:hover figcaption,figure.hover figcaption {-webkit-transform:rotateY(0);-moz-transform:rotateY(0);transform:rotateY(0)}