WhatsApp

  
Cómo Crear un Menú de Navegación Animado
Haz interactivas tus páginas Web

Un menú de navegación animado puede hacer que tu sitio web se vea moderno y atractivo. En este tutorial, te mostraré cómo crear un menú de navegación que se expande y contrae con una animación suave cuando el usuario hace clic en un botón. Utilizaremos HTML para la estructura, CSS para los estilos y JavaScript para la funcionalidad interactiva.

 
 



HTML: Estructura del Contenido

Vamos a comenzar creando el archivo index.html. Este archivo contendrá la estructura básica de nuestro menú de navegación.


HTML

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Nav Animada</title>

<link rel="stylesheet" href="./style.css">

<script src="./script.js" defer></script>

</head>

<body>

<nav class="active" id="nav">

<ul>

<li><a href="#">Home</a></li>

<li><a href="#">Works</a></li>

<li><a href="#">About</a></li>

<li><a href="#">Contact</a></li>

</ul>

<button class="icon" id="toggle">

<div class="line line1"></div>

<div class="line line2"></div>

</button>

</nav>

</body>

</html>


CSS: Estilo del ContenidoCSS: Estilo del Contenido

Ahora, vamos a crear el archivo style.css para añadir estilo a nuestro menú de navegación.]

CSS

@import url('https://fonts.googleapis.com/css?family=Muli&display=swap');



* {

box-sizing: border-box;

}



body {

background-color: #eafbff;

background-image: linear-gradient(

to bottom,

#eafbff 0%,

#eafbff 50%,

#5290f9 50%,

#5290f9 100%

);

font-family: 'Muli', sans-serif;

display: flex;

align-items: center;

justify-content: center;

height: 100vh;

margin: 0;

}



nav {

background-color: #fff;

padding: 20px;

width: 80px;

display: flex;

align-items: center;

justify-content: center;

border-radius: 3px;

box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);

transition: width 0.6s linear;

overflow-x: hidden;

}



nav.active {

width: 350px;

}



nav ul {

display: flex;

list-style-type: none;

padding: 0;

margin: 0;

width: 0;

transition: width 0.6s linear;

}



nav.active ul {

width: 100%;

}



nav ul li {

transform: rotateY(0deg);

opacity: 0;

transition: transform 0.6s linear, opacity 0.6s linear;

}



nav.active ul li {

opacity: 1;

transform: rotateY(360deg);

}



nav ul a {

position: relative;

color: #000;

text-decoration: none;

margin: 0 10px;

}



.icon {

background-color: #fff;

border: 0;

cursor: pointer;

padding: 0;

position: relative;

height: 30px;

width: 30px;

}



.icon:focus {

outline: 0;

}



.icon .line {

background-color: #5290f9;

height: 2px;

width: 20px;

position: absolute;

top: 10px;

left: 5px;

transition: transform 0.6s linear;

}



.icon .line2 {

top: auto;

bottom: 10px;

}



nav.active .icon .line1 {

transform: rotate(-765deg) translateY(5.5px);

}



nav.active .icon .line2 {

transform: rotate(765deg) translateY(-5.5px);

}


JavaScript: Lógica y Funcionalidad

Finalmente, vamos a crear el archivo script.js para manejar la lógica de nuestro menú de navegación. Utilizaremos JavaScript para alternar la clase active del menú cuando el usuario haga clic en el botón.

JS

const toggle = document.getElementById('toggle');

const nav = document.getElementById('nav');



toggle.addEventListener('click', () => nav.classList.toggle('active'));



¡Contáctanos!

Si tienes preguntas, aclaraciones, sugerencias de temas o cualquier otra consulta, ¡no dudes en ponerte en contacto con nosotros! Por favor, completa el formulario de contacto disponible en este enlace, y estaremos encantados de ayudarte.

Si quieres acceder a mi GitHub para tener acceso a este código y a muchos más accede en el siguiente link



Sebastian Granados 3 junio, 2024
Compartir


Iniciar sesión dejar un comentario

  
Diferencias entre Clase y Objeto en Programación Orientada a Objetos: Guía Completa
Entendiendo las Diferencias entre una Clase y un Objeto en la Programación Orientada a Objetos