const menu = document.querySelector(".menu-block"); const menuMain = menu.querySelector(".site-menu-main"); const submenuAll = menu.querySelectorAll(".sub-menu"); const goBack = menu.querySelector(".go-back"); const menuTrigger = document.querySelector(".mobile-menu-trigger"); const closeMenu = menu.querySelector(".mobile-menu-close"); let subMenu; let subMenuArray = []; let subMenuTextArray = []; function last(array) { return array[array.length - 1]; } function last2(array) { return array[array.length - 2]; } menuMain.addEventListener("click", (e) => { if (!menu.classList.contains("active")) { return; } if (e.target.closest(".nav-item-has-children")) { const hasChildren = e.target.closest(".nav-item-has-children"); showSubMenu(hasChildren); } }); goBack.addEventListener("click", () => { const lastItem = last(subMenuArray); const lastItemText = last2(subMenuTextArray); subMenuArray.pop(); subMenuTextArray.pop(); if (subMenuArray.length >= 0) { document.getElementById(lastItem).style.animation = "slideRight 0.5s ease forwards"; menu.querySelector(".current-menu-title").innerHTML = lastItemText; setTimeout(() => { document.getElementById(lastItem).classList.remove("active"); }, 300); } if (subMenuArray.length == 0) { menu.querySelector(".mobile-menu-head").classList.remove("active"); } }); menuTrigger.addEventListener("click", () => { toggleMenu(); }); closeMenu.addEventListener("click", () => { toggleMenu(); }); document.querySelector(".menu-overlay").addEventListener("click", () => { toggleMenu(); }); function toggleMenu() { menu.classList.toggle("active"); document.querySelector(".menu-overlay").classList.toggle("active"); } function showSubMenu(hasChildren) { for (let i = 0; submenuAll.length < i; i++) { submenuAll[i].classList.remove("active"); } subMenu = hasChildren.querySelector(".sub-menu"); subMenuArray.push(subMenu.id); subMenu.classList.add("active"); subMenu.style.animation = "slideLeft 0.5s ease forwards"; const menuTitle = hasChildren.querySelector(".drop-trigger").textContent; subMenuTextArray.push(menuTitle); menu.querySelector(".current-menu-title").innerHTML = menuTitle; menu.querySelector(".mobile-menu-head").classList.add("active"); } window.onresize = function () { if (this.innerWidth > 991) { if (menu.classList.contains("active")) { toggleMenu(); } } };