All checks were successful
Deploy / Deploy to Production (push) Successful in 13s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
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();
|
||
}
|
||
|