1
2 3 4 5 6 7 8 |
A la máscara le ponemos position:absolute para que quede encima de la imagen; también asignaremos estilos al titulo, descripción y link para que se acomoden.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
/*Estilos Base*/
.contenedor-img { width: 300px; height: 200px; float: left; overflow: hidden; position: relative; text-align: center; cursor: default; background: #fff; } .contenedor-img .mascara,.contenedor-img .contenido { width: 300px; height: 200px; position: absolute; overflow: hidden; top: 0; left: 0 } .contenedor-img img { display: block; position: relative; } .contenedor-img h2 { text-transform: uppercase; color: #fff; text-align: center; position: relative; font-size: 17px; padding: 10px; background: rgba(0, 0, 0, 0.9); margin: 20px 0 0 0 } .contenedor-img p { font-size: 12px; position: relative; color: #fff; padding: 10px 20px 10px; text-align: center } .contenedor-img a.link { display: inline-block; text-decoration: none; padding: 7px 14px; background: #222; color: #fff; text-transform: uppercase; box-shadow: 0 0 1px #000 } .contenedor-img a.link:hover { box-shadow: 0 0 5px #000 } |
Ejemplo 1
1
2 3 4 5 6 7 8 |
Con el hover todos ellos deben regresar a su posición original; así que ponemos transform: translateX(0px) y transform: translateY(0px).
Para que se la animación se vea suave la usaremos opacity:0; el cual le dará un pequeño fundido al mostrarse.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/*Ejemplo 1*/
.ejemplo-1 img { transition: all 0.2s linear; } .ejemplo-1 .mascara { opacity: 0; background-color: rgba(46,157,120, 0.7); transition: all 0.3s ease-in-out; } .ejemplo-1 h2 { transform: translateX(-200px);/*Desplazamos a la izquierda*/ opacity: 0; transition: all 0.7s ease-in-out; } .ejemplo-1 p { transform: translateX(200px);/*Desplazamos a la derecha*/ opacity: 0; transition: all 0.4s linear; } .ejemplo-1 a.link{ opacity: 0; transition: all 0.4s ease-in-out; transform: translateY(100px)/*Desplazamos para abajo*/ } .ejemplo-1:hover img { transform: scale(1.1);/*Damos un ligero zoom a la imagen*/ } .ejemplo-1:hover .mascara { opacity: 1; } .ejemplo-1:hover h2, .ejemplo-1:hover p, .ejemplo-1:hover a.link { opacity: 1; transform: translateX(0px);/*Regresamos a las posiciones originales*/ } .ejemplo-1:hover p { transition-delay: 0.1s; } .ejemplo-1:hover a.link { transition-delay: 0.2s; /*Aplicamos un pequeño retardo para que se muestre al final*/ transform: translateY(0px); } |
Ejemplo 2
1
2 3 4 5 6 7 8 9 |
<div class="contenedor-img ejemplo-2">
<img src="test.jpg" /> <div class="mascara"></div> <div class="contenido"> <h2>Ejemplo 2</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse vitae tortor diam in ullamcorper malesuada.</p> <a href="#" class="link">Leer mas</a> </div> </div> |
También usaremos “transition-delay” para que se muestre uno a uno cada elemento y no todos a la vez.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
/*Ejemplo 2*/
.ejemplo-2 img { transition: all 0.2s ease-in; } .ejemplo-2 .mascara { background-color: rgba(25,96,184, 0.8); width: 300px; padding: 60px; height: 300px; opacity: 1; transform: translate(300px, 200px) rotate(45deg); /*Rotamos para dar efecto de diagonal y lo movemos por donde queremos que entre.*/ transition: all 0.5s ease-in-out; } .ejemplo-2 h2 { border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transform: translate(200px, -200px);/*Desplazamos el título arriba a la derecha*/ transition: all 0.3s ease-in-out; } .ejemplo-2 p { transform: translate(-200px, 200px);/*Desplazamos la descripción abajo a la izquierda*/ transition: all 0.4s ease-in-out; } .ejemplo-2 a.link { transform: translate(0px, 100px);/*Desplazamos el link para abajo*/ transition: all 0.3s 0.1s ease-in-out; } .ejemplo-2:hover .mascara { opacity:1; transform: translate(-96px, -120px) rotate(45deg); } .ejemplo-2:hover h2 { transform: translate(0px,0px); transition-delay: 0.3s; } .ejemplo-2:hover p { transform: translate(0px,0px); transition-delay: 0.4s; } .ejemplo-2:hover a.link { transform: translate(0px,0px); transition-delay: 0.5s; } |
Ejemplo 3
1
2 3 4 5 6 7 8 |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/*Ejemplo 3*/
.ejemplo-3 img { transition: all 0.4s ease-in-out; } .ejemplo-3 .mascara { background-color: rgba(128,96,0,0.5); transform: translateX(-300px);/*Desplazamos 300px a la izquierda*/ opacity: 1; transition: all 0.4s ease-in-out; } .ejemplo-3 h2{ background: rgba(255, 255, 255, 0.3); color: #000; box-shadow: 0px 1px 3px rgba(159, 141, 140, 0.5); } .ejemplo-3 p{ color: #333; } .ejemplo-3:hover .mascara { transform: translateX(0px);/*Regresamos a su posicioón original*/ } .ejemplo-3:hover img { transform: translateX(300px);/*Desplazamos 300px a la derecha*/ } |
Ejemplo 4
Usaremos el siguiente html:
1
2 3 4 5 6 7 8 |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
.ejemplo-4 img {
transition: all 0.4s ease-in-out 0.2s; opacity: 1; } .ejemplo-4 .mascara { background-color: rgba(0,0,0,0.8); opacity: 0; transform: scale(0) rotate(-180deg);/*Rotamos 180grados y le damos tamaño 0*/ transition: all 0.4s ease-in; border-radius: 0px; } .ejemplo-4 h2{ opacity: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transition: all 0.5s ease-in-out; } .ejemplo-4 p { opacity: 0; transition: all 0.5s ease-in-out; } .ejemplo-4 a.link { opacity: 0; transition: all 0.5s ease-in-out; } .ejemplo-4:hover .mascara { opacity: 1; transform: scale(1) rotate(0deg);/*Regresamos a su tamaño y posición original*/ transition-delay: 0.2s; } .ejemplo-4:hover img { transform: scale(0); /*Efecto zoom-out*/ opacity: 0; transition-delay: 0s; } .ejemplo-4:hover h2, .ejemplo-4:hover p, .ejemplo-4:hover a.link{ opacity: 1; transition-delay: 0.5s; } |
1
2 3 4 5 6 7 8 |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
/*Ejemplo 4-1*/
.ejemplo-4-1 img { transition: all 0.4s ease-in-out 0.2s; opacity: 1; transform-origin:100% 100%; /*Desde la esquina inferior derecha*/ } .ejemplo-4-1 .mascara { background-color: rgba(0,0,0,0.8); opacity: 0; transition: all 0.4s ease-in-out 0.2s; transform-origin:0% 0%; /*Desde la esquina superior izquierda*/ transform: scale(0); } .ejemplo-4-1 h2{ opacity: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; transition: all 0.5s ease-in-out; } .ejemplo-4-1 p { opacity: 0; transition: all 0.5s ease-in-out; } .ejemplo-4-1 a.link { opacity: 0; transition: all 0.5s ease-in-out; } .ejemplo-4-1:hover .mascara { transform: scale(1); opacity: 1; transition-delay: 0.3s; } .ejemplo-4-1:hover img { transform: scale(0); opacity: 0; transition-delay: 0s; } .ejemplo-4-1:hover h2, .ejemplo-4-1:hover p, .ejemplo-4-1:hover a.link{ opacity: 1; transition-delay: 0.5s; } |
Ejemplo 5
1
2 3 4 5 6 7 8 |
A la imagen le asignaremos “transform: scale(10); y “opacity: 0;” en el hover. A la máscara de “opacity:0” a “opacity:1” en el hover. Para el título, descripción y link les asignaremos, “transform: scale(0); y opacity:0;” y en el hover “transform: scale(1); y opacity:1;”
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
/*Ejemplo 5*/
.ejemplo-5 img { transform: scaleY(1); transition: all 0.7s ease-in-out; } .ejemplo-5 .mascara { background-color: rgba(119, 80, 21, 0.9); transition: all 0.5s linear; opacity: 0; } .ejemplo-5 h2{ border-bottom: 1px solid rgba(255, 255, 255, 0.6); background: transparent; margin: 20px 40px 0px 40px; transform: scale(0); color: #fff; transition: all 0.5s linear; opacity: 0; } .ejemplo-5 p { color: #fff; opacity: 0; transform: scale(0); transition: all 0.5s linear; } .ejemplo-5 a.link { opacity: 0; transform: scale(0); transition: all 0.5s linear; background-color: rgba(119, 80, 21, 0.9); } .ejemplo-5:hover img { transform: scale(10); opacity: 0; } .ejemplo-5:hover .mascara { opacity: 1; } .ejemplo-5:hover h2, .ejemplo-5:hover p, .ejemplo-5:hover a.link{ transform: scale(1); opacity: 1; } |
No hay comentarios:
Publicar un comentario