Ask any question about Bootstrap here... and get an instant response.
Post this Question & Answer:
How can I create a sticky navbar that changes color on scroll in Bootstrap 5?
Asked on Apr 23, 2026
Answer
To create a sticky navbar that changes color on scroll in Bootstrap 5, you can use the `navbar` component with the `sticky-top` class and some JavaScript to handle the color change.
<!-- BEGIN COPY / PASTE -->
<nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top" id="navbar">
<div class="container-fluid">
<a class="navbar-brand" href="#">Brand</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
</ul>
</div>
</div>
</nav>
<script>
window.addEventListener('scroll', function() {
var navbar = document.getElementById('navbar');
if (window.scrollY > 50) {
navbar.classList.add('bg-dark', 'navbar-dark');
navbar.classList.remove('bg-light', 'navbar-light');
} else {
navbar.classList.add('bg-light', 'navbar-light');
navbar.classList.remove('bg-dark', 'navbar-dark');
}
});
</script>
<!-- END COPY / PASTE -->Additional Comment:
✅ Answered with Bootstrap 5 best practices.- The `sticky-top` class makes the navbar stick to the top of the page when scrolling.
- The JavaScript listens for the `scroll` event and toggles the navbar's background and text color classes based on the scroll position.
- Adjust the `50` in `window.scrollY > 50` to change the scroll threshold for the color change.
Recommended Links:
