32 lines
888 B
JavaScript
32 lines
888 B
JavaScript
const header = document.querySelector("[data-header]");
|
|
const nav = document.querySelector("[data-nav]");
|
|
const navToggle = document.querySelector("[data-nav-toggle]");
|
|
const year = document.querySelector("[data-year]");
|
|
|
|
if (year) {
|
|
year.textContent = new Date().getFullYear();
|
|
}
|
|
|
|
if (header) {
|
|
const updateHeader = () => {
|
|
header.classList.toggle("is-scrolled", window.scrollY > 16);
|
|
};
|
|
|
|
updateHeader();
|
|
window.addEventListener("scroll", updateHeader, { passive: true });
|
|
}
|
|
|
|
if (nav && navToggle) {
|
|
navToggle.addEventListener("click", () => {
|
|
const isOpen = nav.classList.toggle("is-open");
|
|
navToggle.setAttribute("aria-expanded", String(isOpen));
|
|
});
|
|
|
|
nav.addEventListener("click", (event) => {
|
|
if (event.target instanceof HTMLAnchorElement) {
|
|
nav.classList.remove("is-open");
|
|
navToggle.setAttribute("aria-expanded", "false");
|
|
}
|
|
});
|
|
}
|