Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách tạo thanh điều hướng dính (sticky navbar) với CSS và JavaScript


Dưới đây là mã để tạo thanh điều hướng dính (sticky navbar) bằng CSS và JavaScript:

Ví dụ

<!DOCTYPE html> <html lang="vi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sticky Navbar</title> <style> body{ margin:0px; margin-top:10px; padding: 0px; height: 150vh; /* Tạo hiệu ứng cuộn */ } 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>Các tiêu đề ở đây</h1> <h2>Các tiêu đề ở đây</h2> <h3>Các tiêu đề ở đây</h3> <h4>Các tiêu đề ở đây</h4> </div> <nav> <a class="links selected" href="#"> Trang chủ</a> <a class="links" href="#"> Đăng nhập</a> <a class="links" href="#"> Đăng ký</a> <a class="links" href="#"> Liên hệ</a> <a class="links" href="#"> Thêm thông tin</a> </nav> <div class="sample-content"> <h1>Các tiêu đề sau nav</h1> <h2>Các tiêu đề sau nav</h2> <h3>Các tiêu đề sau nav</h3> <h4>Các tiêu đề sau 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>

Kết quả

Mã trên sẽ cho ra kết quả như sau:

Cách tạo thanh điều hướng dính (sticky navbar) với CSS và JavaScript

Khi cuộn đến vị trí chỉ định, navbar sẽ hoạt động như position: fixed như hình dưới:

Cách tạo thanh điều hướng dính (sticky navbar) với CSS và JavaScript