</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');
};
// 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
// 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)
closeMenu();
}
});
- });
+ }
+
+ // Run when DOM is ready
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', initializeHamburgerMenu);
+ } else {
+ initializeHamburgerMenu();
+ }
</script>