Select Page
// app.js - Mobile Menu & FAQ Toggle // For static HTML sites document.addEventListener('DOMContentLoaded', function() { // ===== MOBILE MENU ===== const mobileToggle = document.getElementById('gw-mobile-toggle'); const mobileMenu = document.getElementById('gw-mobile-menu'); if (mobileToggle && mobileMenu) { // Toggle menu on button click mobileToggle.addEventListener('click', function() { mobileToggle.classList.toggle('active'); mobileMenu.classList.toggle('active'); // Prevent body scroll when menu open if (mobileMenu.classList.contains('active')) { document.body.style.overflow = 'hidden'; } else { document.body.style.overflow = ''; } }); // Close menu when link clicked const menuLinks = mobileMenu.querySelectorAll('a'); menuLinks.forEach(link => { link.addEventListener('click', function() { mobileToggle.classList.remove('active'); mobileMenu.classList.remove('active'); document.body.style.overflow = ''; }); }); // Close menu on Escape key document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && mobileMenu.classList.contains('active')) { mobileToggle.classList.remove('active'); mobileMenu.classList.remove('active'); document.body.style.overflow = ''; } }); } // ===== FAQ ACCORDION ===== const faqToggles = document.querySelectorAll('.gw-faq-toggle'); faqToggles.forEach(toggle => { toggle.addEventListener('click', function() { const answer = this.nextElementSibling; // Close other open FAQs faqToggles.forEach(otherToggle => { if (otherToggle !== this) { otherToggle.classList.remove('active'); otherToggle.nextElementSibling.classList.remove('active'); } }); // Toggle current FAQ this.classList.toggle('active'); answer.classList.toggle('active'); }); }); });