El menú radial animado CSS/CSS3 puro

Tiempo de ejecución: 30 minutos. Empezar

Autor: Oka
Views Total: 4,648
Sitio oficial: Ir a la web
Actualizado: May 11, 2015
Licencia: MIT

Vista prévia

El menú radial animado CSS/CSS3 puro

Descripción

Un menú radial basado en HTML/CSS puro que expande/contrae secuencialmente los elementos del menú con animaciones CSS3 suaves.

Funcionamiento

Incluye el Font awesome 4 opcional para los iconos de menú.

<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

Utiliza la casilla de verificación y el truco de etiqueta para crear un botón de alternancia que le permite abrir/cerrar el menú radial.

<input id="check" type="checkbox">
<label class="main" for="check">

<div class="title">


<i class="fa fa-bars"></i>

</div>
</label>

Crear elementos de menú que se muestran alrededor del botón de alternancia.

<div class="container">

<a class="plate" href="#">


<i class="fa fa-tumblr"></i>

</a>

<a class="plate" href="#">


<i class="fa fa-pinterest"></i>

</a>

<a class="plate" href="#">


<i class="fa fa-instagram"></i>

</a>

<a class="plate" href="h#">


<i class="fa fa-linkedin"></i>

</a>

<a class="plate" href="#">


<i class="fa fa-github"></i>

</a>

<a class="plate" href="#" target="_top">


<i class="fa fa-google-plus"></i>

</a>

<a class="plate" href="#" target="_top">


<i class="fa fa-facebook"></i>

</a>

<a class="plate" href="#">


<i class="fa fa-twitter"></i>

</a>
</div>

Habilite el menú radial con la magia CSS/CSS3.

#check { display: none; }

.main,
.container {

margin: auto;

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

width: 100px;

height: 100px;

border-radius: 50%;
}

.main {

background-color: #B81365;

box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.35);

cursor: pointer;

z-index: 50;
}

.main:hover { background-color: #cf1572; }

.main:active {

box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.35), inset 1px 2px 2px rgba(0, 0, 0, 0.35);

background-color: #a11158;
}

.main .title {

margin: auto;

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

width: 100%;

height: 80px;

font-size: 3em;

line-height: 80px;

text-align: center;

color: #fafafa;
}

.container { z-index: 10; }

.plate {

margin: auto;

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

width: 50px;

height: 50px;

opacity: 0;

border-radius: 50%;

box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.35);

-webkit-transition: all 0.4s ease-in;

-moz-transition: all 0.4s ease-in;

transition: all 0.4s ease-in;
}

.plate i {

width: 100%;

font-size: 2em;

line-height: 53px;

text-align: center;

color: #333;
}

.plate:hover i { color: #111; }

.plate:nth-of-type(1) {

background-color: rgba(109, 231, 200, 0.3);

-webkit-transition-delay: 0s;

-moz-transition-delay: 0s;

transition-delay: 0s;
}

.plate:nth-of-type(2) {

background-color: rgba(243, 156, 80, 0.1);

-webkit-transition-delay: 0.1s;

-moz-transition-delay: 0.1s;

transition-delay: 0.1s;
}

.plate:nth-of-type(3) {

background-color: rgba(247, 80, 173, 0.1);

-webkit-transition-delay: 0.2s;

-moz-transition-delay: 0.2s;

transition-delay: 0.2s;
}

.plate:nth-of-type(4) {

background-color: rgba(80, 128, 136, 0.5);

-webkit-transition-delay: 0.3s;

-moz-transition-delay: 0.3s;

transition-delay: 0.3s;
}

.plate:nth-of-type(5) {

background-color: rgba(191, 95, 80, 0.9);

-webkit-transition-delay: 0.4s;

-moz-transition-delay: 0.4s;

transition-delay: 0.4s;
}

.plate:nth-of-type(6) {

background-color: rgba(101, 128, 216, 0.7);

-webkit-transition-delay: 0.5s;

-moz-transition-delay: 0.5s;

transition-delay: 0.5s;
}

.plate:nth-of-type(7) {

background-color: rgba(210, 80, 80, 0.2);

-webkit-transition-delay: 0.6s;

-moz-transition-delay: 0.6s;

transition-delay: 0.6s;
}

.plate:nth-of-type(8) {

background-color: rgba(114, 89, 202, 0.9);

-webkit-transition-delay: 0.7s;

-moz-transition-delay: 0.7s;

transition-delay: 0.7s;
}

#check:checked ~ .main + .container .plate { opacity: 1; }

#check:checked ~ .main + .container .plate:nth-of-type(1) { top: -180%; }

#check:checked ~ .main + .container .plate:nth-of-type(2) {

top: -130%;

right: -130%;
}

#check:checked ~ .main + .container .plate:nth-of-type(3) { right: -180%; }

#check:checked ~ .main + .container .plate:nth-of-type(4) {

right: -130%;

bottom: -130%;
}

#check:checked ~ .main + .container .plate:nth-of-type(5) { bottom: -180%; }

#check:checked ~ .main + .container .plate:nth-of-type(6) {

bottom: -130%;

left: -130%;
}

#check:checked ~ .main + .container .plate:nth-of-type(7) { left: -180%; }

#check:checked ~ .main + .container .plate:nth-of-type(8) {

top: -130%;

left: -130%;
}

Te puede interesar: