diff options
Diffstat (limited to 'themes/danix-xyz-hacker/layouts')
| -rw-r--r-- | themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html index 4260456..4d02d9c 100644 --- a/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html +++ b/themes/danix-xyz-hacker/layouts/partials/hamburger-menu.html @@ -66,12 +66,21 @@ </div> <script> - document.addEventListener('DOMContentLoaded', () => { + function initializeHamburgerMenu() { const menuToggle = document.getElementById('menu-toggle'); const menuClose = document.getElementById('menu-close'); const menuOverlay = document.getElementById('menu-overlay'); const hamburgerMenu = document.getElementById('hamburger-menu'); + if (!menuToggle || !menuOverlay || !hamburgerMenu) { + console.warn('Hamburger menu elements not found', { + menuToggle: !!menuToggle, + menuOverlay: !!menuOverlay, + hamburgerMenu: !!hamburgerMenu + }); + return; + } + const openMenu = () => { menuOverlay.classList.remove('opacity-0', 'invisible'); hamburgerMenu.classList.remove('translate-x-full'); @@ -89,20 +98,22 @@ }; // Toggle button click - if (menuToggle) { - menuToggle.addEventListener('click', (e) => { - e.stopPropagation(); - if (menuOverlay.classList.contains('opacity-0')) { - openMenu(); - } else { - closeMenu(); - } - }); - } + menuToggle.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + if (menuOverlay.classList.contains('opacity-0')) { + openMenu(); + } else { + closeMenu(); + } + }); // Close button click if (menuClose) { - menuClose.addEventListener('click', closeMenu); + menuClose.addEventListener('click', (e) => { + e.preventDefault(); + closeMenu(); + }); } // Close on ESC key @@ -115,7 +126,9 @@ // Close when clicking menu links const menuLinks = hamburgerMenu.querySelectorAll('a'); menuLinks.forEach(link => { - link.addEventListener('click', closeMenu); + link.addEventListener('click', (e) => { + closeMenu(); + }); }); // Close when clicking the overlay (but not the menu panel) @@ -124,5 +137,12 @@ closeMenu(); } }); - }); + } + + // Run when DOM is ready + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initializeHamburgerMenu); + } else { + initializeHamburgerMenu(); + } </script> |
