| document.addEventListener('DOMContentLoaded', () => { |
| const mobileMenuButton = document.getElementById('mobile-menu-button'); |
| const mobileMenu = document.getElementById('mobile-menu'); |
| const menuIcon = document.getElementById('menu-icon'); |
| const closeIcon = document.getElementById('close-icon'); |
|
|
| if (mobileMenuButton && mobileMenu && menuIcon && closeIcon) { |
| |
| mobileMenuButton.addEventListener('click', () => { |
| const isExpanded = |
| mobileMenuButton.getAttribute('aria-expanded') === 'true'; |
|
|
| |
| mobileMenu.classList.toggle('hidden'); |
|
|
| |
| menuIcon.classList.toggle('hidden'); |
| closeIcon.classList.toggle('hidden'); |
|
|
| |
| mobileMenuButton.setAttribute('aria-expanded', (!isExpanded).toString()); |
| }); |
|
|
| |
| const mobileLinks = mobileMenu.querySelectorAll('a'); |
| mobileLinks.forEach((link) => { |
| link.addEventListener('click', () => { |
| mobileMenu.classList.add('hidden'); |
| menuIcon.classList.remove('hidden'); |
| closeIcon.classList.add('hidden'); |
| mobileMenuButton.setAttribute('aria-expanded', 'false'); |
| }); |
| }); |
|
|
| |
| document.addEventListener('click', (event) => { |
| const target = event.target as Node; |
| const isClickInsideMenu = mobileMenu.contains(target); |
| const isClickOnButton = mobileMenuButton.contains(target); |
|
|
| if ( |
| !isClickInsideMenu && |
| !isClickOnButton && |
| !mobileMenu.classList.contains('hidden') |
| ) { |
| mobileMenu.classList.add('hidden'); |
| menuIcon.classList.remove('hidden'); |
| closeIcon.classList.add('hidden'); |
| mobileMenuButton.setAttribute('aria-expanded', 'false'); |
| } |
| }); |
| } |
| }); |
|
|