DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
13-08-2015

Múltiples experimentos con CSS hemos visto en DesarrolloLibre a lo largo del tiempo:

Estos experimentos listados anteriormente son solo algunos de ellos, además de las dos entradas anteriores EFECTOS CON HOVER Y TRANSITION EN CSS 1 y 2; en esta entrada veremos un pequeño experimento compuestos por múltiples divs solapados (capas) y emplearemos las transformaciones 3D en CSS (para indicar que capas -div- mostrar y su comportamiento) en conjunto con el selector hover podremos crear una transición que emula el efecto de apertura de una puerta.

Construyendo nuestra puerta (HTML)

Primero necesitamos un div cuyo único propósito será el de contener el fondo que intenta emular una pared de ladrillos:

<div class="example1"></div>

Ahora otro div que ayudará a centrar la puerta y lo que hay detrás de ella:

<div class="parent"></div>

Paso siguiente creamos otro div cuyo contenido se mostrará al realizar la rotación, que para nuestro ejemplo será un simple gif:

<div class="icon">
        <img src="batman-gangnam-style.gif"/>
</div>

Este div -el más importante de todos- permitirá crear la puerta y consta de un divs por cada cara de la puerta; un punto importante -y que podrás ver en el CSS en la próxima sección- es que el div de la clase "puerta" tiene el doble de ancho que los divs de ambas caras de la puerta (clase "atras" y "adelante" respectivamente) y al momento de realizar la rotación se obtiene el efecto deseado de como si de abrir una puerta se tratase:

<div class="puerta">
        <div id="atras"></div>
        <div id="adelante"></div>
</div>

El HTML completo:

<div class="example1">
     <div class="parent">
         <div class="icon">
                 <img src="batman-gangnam-style.gif"/>
         </div>
         <div class="puerta">
                 <div id="atras"></div>
                 <div id="adelante"></div>
         </div>
     </div>
 </div>
Importante que los divs ("icon" y "adelante" y "atras") tienen que estar ubicados exactamente en la misma posición y tener las mismas dimensiones, y estos son nuestros divs solapados.

Creando el efecto de apertura de una puerta (CSS)

Ahora, veamos el CSS más importante para nuestro experimento con capas y el efecto de apertura de una puerta:

Indicamos que el elemento visto por su reverso (girado 180 grados) o -por detrás- debe ser visible en un espacio 3D:

.parent .puerta{
    transform-style : preserve-3d;
    transition : transform 3s ease;
   /*+ CSS*/
}

.parent .puerta:hover{
    transform : rotateY(180deg);
   /*+ CSS*/
}

Y para visualizar correctamente la rotación de la puerta empleamos la propiedad perspective; puedes tener más información sobre la propiedad perspective en la siguiente entrada ENTENDIENDO LA PROPIEDAD PERSPECTIVE (PERSPECTIVA) EN CSS.

.example1{
    background:url('wall.jpg') repeat;
    perspective : 500px;
}

Este CSS es para definir la "cara oculta" mostrada al momento de la rotación:

.parent .puerta div{
    backface-visibility : hidden;
    background : url('door.jpg');
}

Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Colourlovers: Paletas de colores lista para el diseño web

Colourlovers: Paletas de colores lista para el diseño web

Atomo con CSS

Atomo con CSS

Sistema sola con CSS

Sistema sola con CSS

Algunos artículos que te pueden interesar

Animando cosas con CSS: creando loaders

Animando cosas con CSS: creando loaders

Los loaders son un recurso de los más vistosos y necesarios en cualquier aplicación al momento de realizar una tarea que requiera tiempo; en esta entrada veremos cómo crear un par de loaders.

Andrés Cruz 20-10-2015

Animando letras con animation-delay en CSS

Animando letras con animation-delay en CSS

Se explica cómo crear una sencilla animación de letras empleando la propiedad animation-delay en CSS.

Andrés Cruz 18-08-2016

Mostrando transiciones de imágenes como fondo con CSS

Mostrando transiciones de imágenes como fondo con CSS

En esta entrada se explicará una forma de mostrar transiciones suaves de imágenes en el fondo de una página HTML.

Andrés Cruz 07-05-2015