NavBar (HTML / CSS / JS)
Mon petit code ampour un navbar dynamique et sur le coté gauche
- Un bouttons pour l’ouvrir et la fermer
- En fonction de la taille de la fenêtre elle s'ouvre ou reste fermé
- Dynamique
Page HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NavBar</title>
<link href="style.css" rel="stylesheet">
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
<link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
</head>
<body>
<i class="bi bi-list mobile-nav-toggle d-xl-none"></i>
<!-- ======= Header ======= -->
<header id="header">
<div class="d-flex flex-column">
<div class="profile">
<img src="assets/img/profile-img.jpg" alt="" class="img-fluid rounded-circle">
<h1 class="text-light"><a href="index.html">Alex Smith</a></h1>
<div class="social-links mt-3 text-center">
<a href="#" class="twitter"><i class="bx bxl-twitter"></i></a>
<a href="#" class="facebook"><i class="bx bxl-facebook"></i></a>
<a href="#" class="instagram"><i class="bx bxl-instagram"></i></a>
<a href="#" class="google-plus"><i class="bx bxl-skype"></i></a>
<a href="#" class="linkedin"><i class="bx bxl-linkedin"></i></a>
</div>
</div>
<nav id="navbar" class="nav-menu navbar">
<ul>
<li><a href="#hero" class="nav-link scrollto active"><i class="bx bx-home"></i> <span>Home</span></a></li>
<li><a href="#about" class="nav-link scrollto"><i class="bx bx-user"></i> <span>About</span></a></li>
<li><a href="#resume" class="nav-link scrollto"><i class="bx bx-file-blank"></i> <span>Resume</span></a></li>
<li><a href="#portfolio" class="nav-link scrollto"><i class="bx bx-book-content"></i> <span>Portfolio</span></a></li>
<li><a href="#services" class="nav-link scrollto"><i class="bx bx-server"></i> <span>Services</span></a></li>
<li><a href="#contact" class="nav-link scrollto"><i class="bx bx-envelope"></i> <span>Contact</span></a></li>
</ul>
</nav><!-- .nav-menu -->
</div>
</header><!-- End Header -->
<script src="main.js"></script>
</body>
</html>
Page CSS
que vous nommé "style.css"
/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 300px;
transition: all ease-in-out 0.5s;
z-index: 9997;
transition: all 0.5s;
padding: 0 15px;
background: #040b14;
overflow-y: auto;
}
#main {
margin-left: 300px;
}
@media (max-width: 1199px) {
#header {
left: -300px;
}
#main {
margin-left: 0;
}
}
/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/
/* Desktop Navigation */
.nav-menu {
padding: 30px 0 0 0;
}
.nav-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.nav-menu>ul>li {
position: relative;
white-space: nowrap;
}
.nav-menu a,
.nav-menu a:focus {
display: flex;
align-items: center;
color: #a8a9b4;
padding: 12px 15px;
margin-bottom: 8px;
transition: 0.3s;
font-size: 15px;
}
.nav-menu a i,
.nav-menu a:focus i {
font-size: 24px;
padding-right: 8px;
color: #6f7180;
}
.nav-menu a:hover,
.nav-menu .active,
.nav-menu .active:focus,
.nav-menu li:hover>a {
text-decoration: none;
color: #fff;
}
.nav-menu a:hover i,
.nav-menu .active i,
.nav-menu .active:focus i,
.nav-menu li:hover>a i {
color: #149ddd;
}
/* Mobile Navigation */
.mobile-nav-toggle {
position: fixed;
right: 15px;
top: 15px;
z-index: 9998;
border: 0;
font-size: 24px;
transition: all 0.4s;
outline: none !important;
background-color: #149ddd;
color: #fff;
width: 40px;
height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
line-height: 0;
border-radius: 50px;
cursor: pointer;
}
.mobile-nav-active {
overflow: hidden;
}
.mobile-nav-active #header {
left: 0;
}
Page JavaScript
que vous nommé "main.js"
(function() {
"use strict";
/**
* Easy selector helper function
*/
const select = (el, all = false) => {
el = el.trim()
if (all) {
return [...document.querySelectorAll(el)]
} else {
return document.querySelector(el)
}
}
/**
* Easy event listener function
*/
const on = (type, el, listener, all = false) => {
let selectEl = select(el, all)
if (selectEl) {
if (all) {
selectEl.forEach(e => e.addEventListener(type, listener))
} else {
selectEl.addEventListener(type, listener)
}
}
}
on('click', '.mobile-nav-toggle', function(e) {
select('body').classList.toggle('mobile-nav-active')
this.classList.toggle('bi-list')
this.classList.toggle('bi-x')
})
})()
N’oublier pas d’ajouter le fichier joins pour les icônes

No comments to display
No comments to display