34 lines
774 B
JavaScript
34 lines
774 B
JavaScript
(() => {
|
|
const navToggle = document.querySelector("[data-nav-toggle]");
|
|
const nav = document.querySelector("[data-nav]");
|
|
|
|
if (!navToggle || !nav) {
|
|
return;
|
|
}
|
|
|
|
navToggle.addEventListener("click", () => {
|
|
const isOpen = nav.classList.toggle("is-open");
|
|
navToggle.setAttribute("aria-expanded", String(isOpen));
|
|
});
|
|
|
|
nav.addEventListener("click", (event) => {
|
|
const link = event.target.closest("a");
|
|
|
|
if (!link) {
|
|
return;
|
|
}
|
|
|
|
nav.classList.remove("is-open");
|
|
navToggle.setAttribute("aria-expanded", "false");
|
|
});
|
|
|
|
document.addEventListener("keydown", (event) => {
|
|
if (event.key !== "Escape") {
|
|
return;
|
|
}
|
|
|
|
nav.classList.remove("is-open");
|
|
navToggle.setAttribute("aria-expanded", "false");
|
|
});
|
|
})();
|