Side Navigation

Frontend ClubFrontend Club
2 min read

Aprenda a crear un menú de navegación lateral animado y cerrable.

1. Marcado HTML

<div id="mySidenav" class="sidenav">
   <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
   <a href="#">About</a>
   <a href="#">Services</a>
   <a href="#">Clients</a>
   <a href="#">Contact</a>
</div>
<!-- Utilice cualquier elemento para abrir el sidenav -->
<span onclick="openNav()">open</span>
<!-- Agregue todo el contenido de la página dentro de este "div" si desea que la navegación lateral empuje el contenido de la página hacia la derecha -->
<div id="main">
   ...
</div>

2. Estilos CSS

/* El menu side navigation */
.sidenav {
    height: 100%; /* 100% altura-completa */
    width: 0; /* 0 ancho - cambia esto con JavaScript */
    position: fixed; /* fijado */
    z-index: 1;     /* fijado superior */
    top: 0; /* fijado superior */
    left: 0;
    background-color: #111; /* negro*/
    overflow-x: hidden; /* deshabilitar scroll horizontal */
    padding-top: 60px; /* Colocar el contenido a 60 px de la parte superior */
    transition: 0.5s; /* Efecto de transición de 0,5 segundos para deslizarse en el sidenav */
}

/* Los enlaces del menú de navegación */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s;
}

/* Al pasar el ratón sobre los enlaces de navegación, cambia su color. */
.sidenav a:hover {
    color: #f1f1f1;
}

/* Posiciona y diseña el botón de cierre (esquina superior derecha) */
.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

/* Contenido de la página de estilo: use esto si desea mover el contenido de la página hacia la derecha cuando abre el sidenav */
#main {
    transition: margin-left .5s;
    padding: 20px;
}

/* En pantallas más pequeñas, donde la altura es menor a 450px, cambie el estilo del sidenav */
@media screen and (max-height: 450px) {
    .sidenav {
        padding-top: 15px;
    }

    .sidenav a {
        font-size: 18px;
    }
}

3. Código JavaScript

/* Establezca el ancho de la navegación lateral a 250px */
function openNav() {
   document.getElementById("mySidenav").style.width = "250px";
}

/* Establezca el ancho del sidenav en 0 */
function closeNav() {
   document.getElementById("mySidenav").style.width = "0";
}

Referencias

El contenido de este artículo es propiedad original de:


“La mejor manera de aprender a programar es practicando todos los días“.

0
Subscribe to my newsletter

Read articles from Frontend Club directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Frontend Club
Frontend Club

La mejor manera de aprender a programar es practicando todos los días.