45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
(() => {
|
|
// resources/js/header.js
|
|
function menuInit() {
|
|
let main_navigation = document.querySelector("#primary-menu");
|
|
const header = document.querySelector("#primary-header");
|
|
const primary_menu = header.querySelector("#primary-menu");
|
|
const burgerMenuToggle = header.querySelector("#burger-menu-toggle");
|
|
const submenuToggles = primary_menu.querySelectorAll(".menu-item-submenu-toggle");
|
|
burgerMenuToggle.addEventListener("click", function(e) {
|
|
e.preventDefault();
|
|
header.classList.toggle("nav-open");
|
|
burgerMenuToggle.toggleAttribute("aria-expanded");
|
|
gsap.from(primary_menu, {
|
|
opacity: 20,
|
|
y: "-100vh",
|
|
duration: 0.5,
|
|
ease: Power4.easeOut
|
|
});
|
|
});
|
|
document.addEventListener("focusin", (e) => {
|
|
const header2 = document.querySelector("#primary-header");
|
|
console.log(header2.contains(document.activeElement));
|
|
if (header2.classList.contains("nav-open") && !header2.contains(document.activeElement)) {
|
|
header2.classList.remove("nav-open");
|
|
burgerMenuToggle.setAttribute("aria-expanded", false);
|
|
burgerMenuToggle.focus();
|
|
}
|
|
}, true);
|
|
submenuToggles.forEach((button) => {
|
|
button.addEventListener("click", function(e) {
|
|
let isExpanded = button.getAttribute("aria-expanded") === "true";
|
|
button.setAttribute("aria-expanded", !isExpanded);
|
|
button.parentElement.querySelector(".sub-menu").classList.toggle("sub-menu-open");
|
|
});
|
|
});
|
|
}
|
|
|
|
// resources/js/app.js
|
|
console.log("menuInit");
|
|
console.log("menuIniteeeee");
|
|
window.addEventListener("load", function() {
|
|
menuInit();
|
|
});
|
|
})();
|