/* * Mobile sidebar menu controller * Works with markup/classes already present in index.html + mg-menu.css */ (function () { function initMobileMenu() { var menu = document.querySelector(".mg-menu"); var overlay = document.querySelector(".mg-menu-overlay"); var openBtn = document.querySelector(".menu-mobile-toggle"); var closeBtn = document.querySelector(".menu-mobile-close"); if (!menu || !overlay || !openBtn || !closeBtn) { return; } function openMenu() { menu.classList.add("active"); overlay.classList.add("active"); document.body.style.overflow = "hidden"; } function closeMenu() { menu.classList.remove("active"); overlay.classList.remove("active"); document.body.style.overflow = ""; } openBtn.addEventListener("click", openMenu); closeBtn.addEventListener("click", closeMenu); overlay.addEventListener("click", closeMenu); document.addEventListener("keydown", function (event) { if (event.key === "Escape") { closeMenu(); } }); var menuLinks = menu.querySelectorAll("a"); menuLinks.forEach(function (link) { link.addEventListener("click", function () { if (window.innerWidth <= 992) { closeMenu(); } }); }); window.addEventListener("resize", function () { if (window.innerWidth > 992) { closeMenu(); } }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initMobileMenu); } else { initMobileMenu(); } })();