fix: sticky nav
This commit is contained in:
parent
daa02d36d5
commit
9f410a339e
2 changed files with 20 additions and 31 deletions
|
|
@ -1,8 +1,6 @@
|
|||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const nav = document.getElementById('mainNav');
|
||||
const toggle = document.getElementById('navToggle');
|
||||
const navLinks = document.getElementById('navLinks');
|
||||
let lastScrollTop = 0;
|
||||
|
||||
// Toggle menu on mobile
|
||||
toggle.addEventListener('click', function () {
|
||||
|
|
@ -10,19 +8,9 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
toggle.classList.toggle('active');
|
||||
});
|
||||
|
||||
// Sticky on scroll
|
||||
window.addEventListener('scroll', function () {
|
||||
const currentScroll = window.pageYOffset || document.documentElement.scrollTop;
|
||||
if (currentScroll > 0) {
|
||||
nav.classList.add('sticky');
|
||||
} else {
|
||||
nav.classList.remove('sticky');
|
||||
}
|
||||
lastScrollTop = currentScroll <= 0 ? 0 : currentScroll;
|
||||
});
|
||||
|
||||
// Optionally handle dropdowns on mobile (if desired)
|
||||
// For example:
|
||||
// No need to add or remove sticky class here since CSS handles position: sticky
|
||||
// We simply rely on the CSS-based sticky behavior and reserved space via body padding.
|
||||
|
||||
const submenuParents = document.querySelectorAll('.nav-item.has-submenu');
|
||||
submenuParents.forEach(parent => {
|
||||
parent.addEventListener('click', (e) => {
|
||||
|
|
@ -31,7 +19,6 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||
const subMenu = parent.querySelector('.sub-menu');
|
||||
if (subMenu) {
|
||||
const isOpen = subMenu.style.display === 'block';
|
||||
// Close all open submenus first (optional)
|
||||
document.querySelectorAll('.sub-menu').forEach(sm => sm.style.display = 'none');
|
||||
subMenu.style.display = isOpen ? 'none' : 'block';
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue