Todas las mentes comprar kamagra espana del mundo comprar levitra espana recomiendan comprar priligy espana prevenir problemas

Cuando tenemos una hamburguesa muchas veces tenemos que esconderla para mostrar una cruz de cerrar o un flecha de volver. Hoy en día eso es poco elegante y obliga a usar diferentes elementos de maquetación cosa que es engorroso e implica usar javascript en exceso. Os presento una buena forma de transformar iconos de hamburguesa en iconos de cerrar o de volver.

Primero debemos definir el HTML:

<div class="cross"><div></div></div>

Un <div> sencillo pero también se podría hacer con otros elementos cómo un <a>

Ahora debemos definir el CSS y es aquí dónde se «complica» el asunto. Usaremos los pseudoelementos para realizar las dos líneas complemnetarias de la hamburguesa:

.cross {
    cursor:pointer;
    width:50px;
    height:50px;
    position: relative;
 
    transition:.5s all ease-out;
    -webkit-transition:.5s all ease-out;
    -moz-transition:.5s all ease-out;
    -o-transition:.5s all ease-out;
}
.cross div, .cross div:before, .cross div:after {
    position:absolute;
    left:0;
    right:0;
    width:50px;
    height:5px;
 
    /* Un border-radius muy grande redondea las puntas pero no hace elipse como si fuera en % */		
    border-radius:10em;
    -webkit-border-radius:10em;
    -moz-border-radius:10em;
    -o-border-radius:10em;
 
    /* Los pintamos de color */
    background-color:#444444;
 
    transition:.25s all ease-out;
    -webkit-transition:.25s all ease-out;
    -moz-transition:.25s all ease-out;
    -o-transition:.25s all ease-out;
}

Ahora tenemos que definir los estilos de la cruz. Lo haremos añadiendo una clase que se llama transform:

<div class="cross transform"><div></div></div>
.cross.transform {
    transform: rotate(-360deg);
    -webkit-transform: rotate(-360deg);
    -moz-transform: rotate(-360deg);
    -o-transform: rotate(-360deg);
}
.cross.transform div:before, .cross.transform div:after{
    width:55px;
}
.cross.transform div{
    transform:rotate(-45deg);
}
.cross.transform div:before{
    top:0;
    transform:rotate(0);
}
.cross.transform div:after{
    bottom:0;
    transform:rotate(90deg);
}

Una vez ya tenemos los dos estados sólo tenemos que hacer la transición mediante un sencillo script de javascript:

$('.cross').click(function(){
    if($(this).hasClass('transform')){
        $(this).removeClass('transform');
    }else{
        $(this).addClass('transform');
    }
});

Ahora si quisierais hacer lo mismo con una flecha de volver sería similar:

<div class="arrow"><div></div></div>

El css:

.arrow{
    cursor:pointer;
    width:50px;
    height:50px;
    margin:-25px 0 0 -25px;
 
    transition:.5s all ease-out;
    -webkit-transition:.5s all ease-out;
    -moz-transition:.5s all ease-out;
    -o-transition:.5s all ease-out;
}
.arrow.transform{
    transform:rotate(-360deg);
    -webkit-transform:rotate(-360deg);
    -moz-transform:rotate(-360deg);
    -o-transform:rotate(-360deg);
}
.arrow div, .arrow div:before, .arrow div:after{
    position:absolute;
    left:0;
    right:0;
    width:50px;
    height:5px;
 
    border-radius:10em;
    -webkit-border-radius:10em;
    -moz-border-radius:10em;
    -o-border-radius:10em;
 
    background-color:#ffb400;
 
    transition:.25s all ease-out;
    -webkit-transition:.25s all ease-out;
    -moz-transition:.25s all ease-out;
    -o-transition:.25s all ease-out;
}
.arrow div:before, .arrow div:after{ content:''; }
.arrow div:before{ top:-15px; }
.arrow div{ top:50%; margin-top:-2.5px; }
.arrow div:after{ bottom:-15px; }
 
.arrow.transform div:before, .arrow.transform div:after{
    width:35px;
}
.arrow.transform div:before{
    top:-11px;
    transform:rotate(-45deg);
    margin-left:-5px;
}
.arrow.transform div:after{
    bottom:-11px;
    transform:rotate(45deg);
    margin-left:-5px;
}

El javascript:

$('.arrow').click(function(){
    if($(this).hasClass('transform')){
        $(this).removeClass('transform');
    }else{
        $(this).addClass('transform');
    }
});
FuenteButtons
Categorías: CSS
Si necesitas una url corta puede usar: codygo.es/1466

Deja un comentario