Today, I want to show you how I darken the navbar when a user scrolls on the website.
THE SECRET
I am using an event listener scroll
which I attached to the navbar to listen for when the user scrolls beyond a certain screen size. This will allow the text on the navbar to be readable.
Using JavaScript, we add two classes to the navbar
bg-dark
: this will give the navbar a dark background. I believe this is an in-built bootstrap class.slow
: this will add animation to make the navbar slowly darken.
HTML
<!--NavBar--> <nav class="navbar navbar-dark py-3 navbar-expand-lg fixed-top"> <div class="container"> <a href="#" class="navbar-brand"> <img src="./img/halo-logo.jpg" class="img-fluid logo" alt=""> </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navmenu"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navmenu"> <ul class="navbar-nav me-auto"> <li class="nav-item"> <a href="#home" class="nav-link active">GAMES</a> </li> <li class="nav-item"> <a href="#news" class="nav-link">NEWS</a> </li> <li class="nav-item"> <a href="#about" class="nav-link">ESPORTS</a> </li> <li class="nav-item"> <a href="#occupation" class="nav-link">COMMUNITY</a> </li> <li class="nav-item"> <a href="#occupation" class="nav-link linkarrow">SUPPORT<i class="ri-arrow-right-up-line"></i></a> </li> <li class="nav-item"> <a href="#occupation" class="nav-link linkarrow">GEAR<i class="ri-arrow-right-up-line"></i></a> </li> </ul> <a href="#footer" class="btn btn-brand">GET HALO</a> </div> </div> </nav>
CSS
.slow{ @include transition-ease; } @mixin transition-ease{ transition: all 1.4s ease; }
JavaScript
const nav = document.querySelector("nav"); window.addEventListener("scroll", () => { if (window.scrollY > 100) { nav.classList.add("bg-dark", "slow") } else { nav.classList.remove("bg-dark", "slow") } })
Explaination
we capture the navbar using DOM manipulation.
we add an event listener to the browser window to listen for when a user scrolls beyond 100 vh.
we add the classes "bg-dark" and "slow" to the navbar.
Thank You, Please Follow me.
Top comments (0)