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

Burbujas flotantes con JavaScript

Burbujas flotantes con JavaScript

Loader Battlenet

Loader Battlenet

Triangulo 3D animado con CSS

Triangulo 3D animado con CSS

Algunos artículos que te pueden interesar

Creando una web básica con Flex en HTML

Creando una web básica con Flex en HTML

En esta entrada veremos cómo crear una web básica empleando flex con las propiedades flex-grow, flex-shrink y flex-basis.

Andrés Cruz 07-04-2016

Introducción a las Transiciones en CSS

Introducción a las Transiciones en CSS

Con solo aplicar ciertas reglas CSS sobre nuestros elementos del DOM; podemos hacer completas animaciones sin utilizar JavasCript o alguna otra tecnologías como Flash.

Andrés Cruz 10-09-2013

¿Cómo usar las Variables en LESS CSS?

¿Cómo usar las Variables en LESS CSS?

Las variables permiten especificar los valores utilizados en un solo lugar y poder utilizarlos a lo largo de la Hoja de Estilo.

Andrés Cruz 12-09-2013