

- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create a "sticky" navbar with CSS and JavaScript?
Following is the code to create a sticky navbar using css and javascript −
Example
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body{ margin:0px; margin-top:10px; padding: 0px; height: 150vh; /* To produce scrolling effect */ } nav{ width: 100%; background-color: rgb(39, 39, 39); overflow: auto; height: auto; } .links { display: inline-block; text-align: center; padding: 14px; color: rgb(178, 137, 253); text-decoration: none; font-size: 17px; } .links:hover { background-color: rgb(100, 100, 100); } .selected{ background-color: rgb(0, 18, 43); } .fixed{ position:fixed; top:0; } .fixed + .sample-content{ padding-top: 60px; } </style> </head> <body> <div class="sample-content"> <h1>Here are some headers</h1> <h2>Here are some headers</h2> <h3>Here are some headers</h3> <h4>Here are some headers</h4> </div> <nav> <a class="links selected" href="#"> Home</a> <a class="links" href="#"> Login</a> <a class="links" href="#"> Register</a> <a class="links" href="#"> Contact Us</a> <a class="links" href="#">More Info</a> </nav> <div class="sample-content"> <h1>Here are some headers after nav</h1> <h2>Here are some headers after nav</h2> <h3>Here are some headers after nav</h3> <h4>Here are some headers after nav</h4> </div> <script> window.onscroll = scrollShowNav; let navEle = document.getElementsByTagName("nav")[0]; let stickyTop = navEle.offsetTop; function scrollShowNav() { if (window.pageYOffset >= stickyTop){ navEle.classList.add("fixed"); } else { console.log('WOW'); navEle.classList.remove("fixed"); } } </script> </body> </html>
Output
The above code will produce the following output −
On scrolling to the specified position, the navbar will act as position: fixed like shown below −
- Related Questions & Answers
- Create a sticky navbar with CSS
- How to create a sticky image with CSS?
- How to create a sticky element with CSS?
- How to create a fixed/sticky header on scroll with CSS and JavaScript?
- How to create a fixed/sticky footer with CSS?
- CSS position: sticky;
- How to create tabs with CSS and JavaScript?
- How to create popups with CSS and JavaScript?
- Set a border around navbar with CSS
- How to create a quotes slideshow with CSS and JavaScript?
- How to create a responsive slideshow with CSS and JavaScript?
- How to create a Modal Box with CSS and JavaScript?
- How to create a scroll indicator with CSS and JavaScript?
- How to create a collapsible section with CSS and JavaScript?
- How to create a snackbar / toast with CSS and JavaScript?
Advertisements