Créez un menu de navigation latéral coulissant au design réactif
Dans ce didacticiel, vous créerez un menu de navigation latéral extensible à l'aide de JavaScript et CSS. Le produit final est présenté ci-dessous :
1. Créer une marque
Tout d’abord, ajoutons quelques balises au menu latéral :
<div id="sideNavigation" class="sidenav"> <a href="#" class="close-btn">×</a> <a href="#">About</a> <a href="#">Features</a> <a href="#">Contact Us</a> </div> <nav class="topnav"> <a href="#" class="ham-icon"> <svg width="30" height="30" id="icoOpen"> <path d="M0,5 30,5" stroke="#000" stroke-width="5"/> <path d="M0,14 30,14" stroke="#000" stroke-width="5"/> <path d="M0,23 30,23" stroke="#000" stroke-width="5"/> </svg> </a> </nav> <section id="main"> <h1 id="This-Side-Navigation-Menu-Looks-Good">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> </section>
Ici, vous pouvez voir que nous avons ajouté la navigation dans la barre supérieure à l'aide de la balise class sidenav
创建了一个侧边菜单 div
。接下来,我们通过 <nav>
, et nous avons utilisé SVG pour l'icône du menu latéral.
N'oubliez pas de mettre tout le contenu de votre site Web dans un conteneur div id="main"
pour qu'il glisse vers la droite.
2. Écrivez du code JavaScript
Ensuite, ajoutons JavaScript qui utilisera la classe ham-icon
pour écouter les événements de clic sur l'icône du hamburger, ainsi que le bouton de fermeture qui apparaît après le glissement du menu de navigation latéral sur l'écran.
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"; });
Cliquer sur l'icône du hamburger devrait révéler la navigation latérale. Pour ce faire, nous définissons la largeur de la navigation sur la marge gauche de 250px
,同时向主要网站内容添加 250px
.
Cliquer sur le bouton de fermeture devrait masquer la navigation latérale. Pour ce faire, nous remettons la largeur de la navigation à 0, tout en définissant également la marge gauche du contenu principal du site à 0.
3. Utilisez les styles CSS
Enfin, nous devons utiliser du CSS pour styliser le menu latéral et les liens sur la page. CSS placera tous les éléments de la page Web exactement là où nous le souhaitons. Nous appliquerons également une animation simple à l’aide de l’attribut transition
. Examinons CSS une partie à la fois.
.sidenav { height: 100%; width: 0; position: fixed; z-index: 1; top: 0; left: 0; background-color: #111; overflow-x: hidden; padding-top: 4rem; transition: 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28); font-family: "Bebas Neue"; } .sidenav a { padding: 0.5rem 1rem; text-decoration: none; color: #bdbdbd; display: block; transition: 0.4s; white-space: nowrap; font-size: 2rem; } .sidenav a:hover { color: white; background: #9e9e9e; }
Lorsque nous height
设置为100%
,并将其初始width
设置为0
以使其隐藏。但是,只有当 overflow-x
属性的值设置为 hidden
la navigation latérale, le contenu de la navigation latérale restera masqué.
La propriété de transition garantit que les changements de largeur de navigation latérale ne se produisent pas soudainement, et la fonction d'assouplissement la rend un peu élastique.
Pour les liens dans la navigation latérale, nous ferons white-space
属性的值设置为 nowrap
afin que le texte du menu ne déborde pas de plusieurs lignes.
.sidenav .close-btn { position: absolute; top: -1rem; right: 1rem; font-size: 5rem; } .sidenav .close-btn:hover { background: initial; transform: scale(1.2); }
Le style CSS ci-dessus sépare notre bouton de fermeture des autres liens de la navigation latérale. Nous avons appliqué un positionnement absolu au bouton de fermeture et empêché son arrière-plan de devenir gris clair au survol. Sa taille augmente également de 20 % lorsque l’utilisateur le survole.
Le CSS suivant garantira désormais que la position du contenu principal se déplace en synchronisation avec le menu de navigation en utilisant la même durée de transition et la même fonction d'assouplissement. Le placement overflow-x
属性的值设置为 hidden
garantit qu'aucune barre de défilement horizontale n'apparaît lorsque le contenu se déplace.
#main { transition: margin-left 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28); padding: 20px; width: 100%; } body { overflow-x: hidden; }
Nous pouvons également ajouter un petit mouvement de rotation à l'icône du hamburger à l'aide du CSS suivant. Il fait pivoter l'icône du hamburger de 180 degrés en 0,5 seconde.
a svg { transition: all 0.5s ease; } a svg:hover { transform: rotate(180deg); }
Enfin, rendons le menu de navigation réactif en ajustant l'espacement et la taille des liens à l'aide du CSS suivant. Cela garantit que le menu ne s'étend pas hors de portée sur les écrans avec moins d'espace vertical.
@media screen and (max-height: 480px) { .sidenav { padding-top: 3rem; } .sidenav a { font-size: 1.5rem; } }
À ce stade, votre menu de navigation devrait ressembler à la démo CodePen suivante.
4. Supprimer le diaporama
Pour faire apparaître le menu sans animation de diapositive, modifiez simplement la propriété CSS transition
comme indiqué dans la forme abrégée ci-dessous :
.sidenav { transition: 0s; } #main { transition: margin-left 0s; }
Cela fera apparaître les modifications immédiatement puisqu'il n'y a aucun délai spécifié dans transition
中没有指定延迟。我们使用的默认值是 0.5s
. La valeur par défaut que nous utilisons est 0,5s
.
Conclusion
Créer un menu latéral ne nécessite que quelques lignes de code et ne nécessite pas beaucoup de ressources. Rendez votre code réactif aux différentes résolutions d'écran de l'appareil en modifiant votre CSS en ajoutant des requêtes multimédias pour vos cas spécifiques.
Pour aller plus loin, vous souhaiterez peut-être utiliser un framework CSS comme Bootstrap ou Bulma pour styliser votre menu.
Cet article a été mis à jour avec une contribution de Monty Shokeen. Monty est un développeur full-stack qui aime également écrire des tutoriels et apprendre de nouvelles bibliothèques JavaScript.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

WordPress est facile pour les débutants de commencer. 1. Après se connecter à l'arrière-plan, l'interface utilisateur est intuitive et le tableau de bord simple fournit tous les liens de fonction nécessaires. 2. Les opérations de base incluent la création et l'édition de contenu. L'éditeur WYSIWYG simplifie la création de contenu. 3. Les débutants peuvent étendre les fonctions du site Web via des plug-ins et des thèmes, et la courbe d'apprentissage existe mais peut être maîtrisée par la pratique.

WordPressisGoodForvirontuallyAnyWebprojectDuetOtsSversatityAsacms.itexcelsin: 1) une convivialité, permettant à la manière

Peut apprendre WordPress dans les trois jours. 1. Master les connaissances de base, telles que les thèmes, les plug-ins, etc. 2. Comprenez les fonctions principales, y compris les principes d'installation et de travail. 3. Apprenez l'utilisation de base et avancée à travers des exemples. 4. Comprendre les techniques de débogage et les suggestions d'optimisation des performances.

Wix convient aux utilisateurs qui n'ont aucune expérience de programmation, et WordPress convient aux utilisateurs qui souhaitent plus de capacités de contrôle et d'extension. 1) Wix fournit des éditeurs de glisser-déposer et des modèles riches, ce qui facilite la création d'un site Web rapidement. 2) En tant que CMS open source, WordPress possède un énorme écosystème communautaire et plug-in, soutenant la personnalisation et l'expansion approfondies.

WordPress lui-même est gratuit, mais il en coûte supplémentaire à utiliser: 1. WordPress.com propose un package allant du gratuit à payant, avec des prix allant de quelques dollars par mois à des dizaines de dollars; 2. WordPress.org nécessite l'achat d'un nom de domaine (10-20 dollars américains par an) et des services d'hébergement (5-50 dollars américains par mois); 3. La plupart des plug-ins sont gratuits, et le prix payant se situe entre des dizaines et des centaines de dollars; En choisissant le bon service d'hébergement, en utilisant des plug-ins et des thèmes raisonnablement, et en maintenant et en maintenant régulièrement, le coût de WordPress peut être efficacement contrôlé et optimisé.

Les gens choisissent d'utiliser WordPress en raison de son pouvoir et de sa flexibilité. 1) WordPress est un CMS open source avec une forte facilité d'utilisation et une évolutivité, adaptée à divers besoins en site Web. 2) Il a des thèmes et des plugins riches, un énorme écosystème et un fort soutien communautaire. 3) Le principe de travail de WordPress est basé sur des thèmes, des plug-ins et des fonctions de base, et utilise PHP et MySQL pour traiter les données, et prend en charge l'optimisation des performances.

WordPress est un système de gestion de contenu (CMS). Il fournit une gestion de contenu, une gestion des utilisateurs, des thèmes et des capacités de plug-in pour prendre en charge la création et la gestion du contenu du site Web. Son principe de travail comprend la gestion des bases de données, les systèmes de modèles et l'architecture du plug-in, adaptés à une variété de besoins, des blogs aux sites Web d'entreprise.

La version principale de WordPress est gratuite, mais d'autres frais peuvent être engagés pendant l'utilisation. 1. Les noms de domaine et les services d'hébergement nécessitent un paiement. 2. Des thèmes et des plug-ins avancés peuvent être facturés. 3. Les services professionnels et les fonctionnalités avancées peuvent être facturés.
