Maison > interface Web > tutoriel CSS > Faire un menu coulissant de navigation latérale pour les conceptions réactives

Faire un menu coulissant de navigation latérale pour les conceptions réactives

William Shakespeare
Libérer: 2025-03-01 09:03:12
original
675 Les gens l'ont consulté

Ce tutoriel vous montre comment créer un menu de navigation latéral extensible réactif à l'aide de JavaScript et CSS. Le résultat final est un menu élégant et moderne.

Making a Sliding Side Navigation Menu for Responsive Designs

Voici une démo en direct:

1. Structure HTML:

Commencez par ajouter le HTML pour le menu latéral:

<div class="sidenav" id="sideNavigation">
  <a class="close-btn" href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">×</a>
  <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">About</a>
  <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Features</a>
  <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">Contact Us</a>
</div>

<nav class="topnav">
  <a class="ham-icon" href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">
    <svg height="30" id="icoOpen" width="30">
      <path d="M0,5 30,5" stroke="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000" stroke-width="5"></path>
      <path d="M0,14 30,14" stroke="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000" stroke-width="5"></path>
      <path d="M0,23 30,23" stroke="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000" stroke-width="5"></path>
    </svg>
  </a>
</nav>

<main id="main">
  <h1>This Side Navigation Menu Looks Good!</h1>
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</main>
Copier après la connexion

Cela configure le menu latéral (sidenav), une icône de hamburger (ham-icon) pour l'ouvrir, un bouton de fermeture (close-btn), et la zone de contenu principale (main).

2. Fonctionnalité JavaScript:

Ce javascript gère les actions ouvertes et fermées du menu:

document.querySelector("a.ham-icon").addEventListener("click", function(event){
  document.getElementById("sideNavigation").style.width = "250px";
  document.getElementById("main").style.marginLeft = "250px";
});

document.querySelector("a.close-btn").addEventListener("click", function(event){
  document.getElementById("sideNavigation").style.width = "0";
  document.getElementById("main").style.marginLeft = "0";
});
Copier après la connexion

Cliquez sur l'icône du hamburger élargit le menu; Cliquez sur le bouton Fermer l'effondre.

3. Style CSS:

Le CSS stylise le menu et son animation:

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bmain {
  transition: margin-left 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);
  padding: 20px;
  width: 100%;
}

body {
  overflow-x: hidden;
}

a svg {
  transition: all 0.5s ease;
}

a svg:hover {
  transform: rotate(180deg);
}

@media screen and (max-height: 480px) {
  .sidenav {
    padding-top: 3rem;
  }
  .sidenav a {
    font-size: 1.5rem;
  }
}
Copier après la connexion

Ce CSS fournit l'animation de diapositive lisse, gère le débordement et ajoute une réactivité pour les écrans plus petits. Le overflow-x: hidden; sur le corps empêche les barres de défilement horizontales.

4. Suppression de l'animation de diapositive (facultative):

Pour supprimer l'animation de diapositive, définissez les propriétés transition sur 0s dans votre CSS:

.sidenav {
  transition: 0s;
}

https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bmain {
  transition: margin-left 0s;
}
Copier après la connexion

Cela fait apparaître et disparaître le menu instantanément.

Conclusion:

Ce menu de navigation latéral simple mais efficace est facilement personnalisable et adaptable à divers besoins de conception. Pensez à utiliser un cadre CSS comme Bootstrap ou Bulma pour des options de style plus avancées. Merci à Monty Shokeen pour ses contributions!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal