index-main/assets/js/header.js
isUnknown 0e1b65badf
All checks were successful
Deploy / Deploy to Production (push) Successful in 13s
feat: Escape key closes menu
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 12:14:39 +01:00

57 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export function headerToggle() {
const header = document.getElementById("site-header");
const buttonToggle = document.querySelector("#menu-toggle");
const siteMenu = document.getElementById("site-menu");
const overlay = document.getElementById("menu-overlay");
if (!header || !buttonToggle) return;
function openMenu() {
document.body.classList.add("menu-open");
buttonToggle.setAttribute("aria-expanded", "true");
buttonToggle.setAttribute("aria-label", "Fermer le menu");
siteMenu?.removeAttribute("inert");
}
function closeMenu() {
document.body.classList.remove("menu-open");
buttonToggle.setAttribute("aria-expanded", "false");
buttonToggle.setAttribute("aria-label", "Ouvrir le menu");
siteMenu?.setAttribute("inert", "");
}
buttonToggle.addEventListener("click", (e) => {
e.stopPropagation();
document.body.classList.contains("menu-open") ? closeMenu() : openMenu();
});
header.addEventListener("click", () => {
if (document.body.classList.contains("menu-open")) closeMenu();
});
overlay?.addEventListener("click", closeMenu);
document.addEventListener("keydown", (e) => {
if (e.key === "Escape" && document.body.classList.contains("menu-open")) closeMenu();
});
}
// DELETE?
export function headerScrollVisibility() {
const header = document.getElementById("site-header");
if (!header) return;
function checkScroll() {
if (window.scrollY >= 300) {
header.classList.add("is-visible");
} else {
header.classList.remove("is-visible");
}
}
window.addEventListener("scroll", checkScroll);
checkScroll();
}