Se trata de algo tan sencillo y vistoso a la vez, como hacer aparecer información adicional sobre una imagen al pasar el puntero por encima de ella. Para esto vamos a echar mano de cosas que ya hemos visto en otras ocasiones. Básicamente z-index, position y opacity.
La teorÃa es que montamos una caja dentro de la cual irá una imagen con enlace y dentro del mismo enlace un span con los datos (texto). Como solaparemos esos elementos en el mismo espacio, el orden lo marcamos con z-index, de manera que el texto quede por encima de la imagen. Como inicialmente no queremos que se vea, le añadiremos también una opacidad (opacity:0;) haciéndolo inicialmente transparente (no visible).
El cambio vendrá con el hover sobre la caja principal, momento en el cual la transparencia será nula (bueno, casi) dejando ver los datos antes comentados.
En la práctica estamos hablando de algo asÃ, pero luego lo complicaremos un poco más:
Canción escrita por Bob Thiele y George D. Weiss y lanzada como sencillo en 1967MVSICAE MEMORANDVM
position: relative;
width: 300px;
margin: 10px auto;
}
.caja2 img {
position: relative;
z-index:2; /*Imagen apilada en segunda posición*/
border: 1px solid #333;
box-shadow: 1px 1px 4px #333;
}
.disco {
position: absolute;
top:0;
left:0px;
z-index:1; /*La imagen del disco por debajo de la principal*/
display:block;
width: 300px;
height:300px;
background:url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOXXhUmAuPqbtFsnnoFWHDWbYPJj3GKjX7bBUlQTvo4vZ6MdPxzH4gEbrUw9qjh9i4qfTx0qVccIZ2pyplvVap1SKRqzJ-2XzMPYZV5j9OiqhWdPOA-e07-ZnFS1N6h9l4Lxpuy2sooSQ/s300/vinilo.png") no-repeat scroll center center transparent;
-moz-transition:all linear 0.5s 0s;
-webkit-transition:all linear 0.5s 0s;
transition:all ease 0.5s 0s;
}
.info2 {
position: absolute;
z-index: 3; /*Los datos por encima de todo lo demás*/
top: 30%;
zoom: 1;
filter: alpha(opacity=0);
opacity: 0;
padding: 5px;
text-align: center;
color: #eee;
background: #333;
background: rgba(0,0,0,.7);
-moz-transition:all linear 0.5s 0s;
-webkit-transition:all linear 0.5s 0s;
transition:all ease 0.5s 0s;
}
.caja2:hover .info2, .caja2:hover .disco {
filter: alpha(opacity=100);
opacity:1;
}
.caja2:hover .disco {
left:100px; /*Para hacer "salir" parcialmente el disco*/
-moz-transform:rotate(180deg); /*Y además lo hace girando*/
-webkit-transform:rotate(180deg);
transform:rotate(180deg);
}
position: relative;
width: 300px;
margin: 10px auto;
}
.caja3 img {
width: 300px;
border: 3px solid #333;
-moz-box-shadow: 1px 1px 4px #333;
-webkit-box-shadow: 1px 1px 4px #333;
box-shadow: 1px 1px 4px #333;
}
.info3 {
position: absolute;
top: 30%;
opacity: 0;
width: 200px;
height: 110px;
padding: 5px;
text-align: left;
color: #eee;
background: #C14684; /*Para IE que no soporta RGBA*/
background: rgba(193,70,132,.8);
-moz-transform:rotate(180deg); /*Inicialmente boca abajo*/
-webkit-transform:rotate(180deg);
transform:rotate(180deg);
-moz-transition:all linear 0.5s 0s;
-webkit-transition:all linear 0.5s 0s;
transition:all ease 0.5s 0s;
}
.info3:after {
position: absolute;
top: 0;
right: -120px;
content:"";
display:block; /*Lo siguiente monta el triángulo*/
width:0;
height:0;
border-color:transparent transparent transparent #C14684;
border-color:transparent transparent transparent rgba(193,70,132,.8);
border-style:solid;
border-width:60px;
}
.imagen img {
position: absolute;
top:0;
border: 0;
height: 0; /*Segunda imagen no visible inicialmente*/
-moz-transition:all linear 0.5s 0s;
-webkit-transition:all linear 0.5s 0s;
transition:all ease 0.5s 0s;
}
.caja3:hover .info3 {
filter: alpha(opacity=100);
opacity: 1;
left:-100px;
-moz-transform:rotate(0deg);
-webkit-transform:rotate(0deg);
transform:rotate(0deg);
}
.caja3:hover .imagen img {
top:0;
left:0;
height:450px !important;
border: 3px solid #333;
}
No hay comentarios:
Publicar un comentario