ldc-jeusselin/resources/ts/fo/common.ts
2026-07-30 16:57:03 +02:00

48 lines
1.7 KiB
TypeScript

window.addEventListener("DOMContentLoaded", function () {
// * SCROLL TO TOP
function handleScroll() {
const scrollTop = window.scrollY;
if (scrollTop > 0) {
document.querySelector("header")?.classList.add("sticky-bar");
document.querySelector(".pageup")?.classList.add("see");
} else {
document.querySelector("header")?.classList.remove("sticky-bar");
document.querySelector(".pageup")?.classList.remove("see");
}
}
window.addEventListener("scroll", handleScroll, { passive: true });
// * GESTION RESPONSIVE DU MENU
const toggleMenu = document.querySelector<HTMLDivElement>(".toggle-menu");
const nav = document.querySelector<HTMLElement>("nav");
const body = document.body;
toggleMenu?.addEventListener("click", () => {
toggleMenu.classList.toggle("active");
nav?.classList.toggle("active");
body.classList.toggle("mobile-nav-active");
});
// * DECONNEXION
document.getElementById("logout-form-button")?.addEventListener("click", () => {
const logoutForm = document.querySelector<HTMLFormElement>("#logout-form");
if (logoutForm) {
logoutForm.submit();
}
});
document.getElementById("logout-form-button-mobile")?.addEventListener("click", () => {
const logoutForm = document.querySelector<HTMLFormElement>("#logout-form-mobile");
if (logoutForm) {
logoutForm.submit();
}
});
// * BORDER VISIBLE SUR LE MENU AFFICHE
const menuItems = document.querySelectorAll<HTMLLIElement>("nav ul li");
menuItems.forEach((li) => {
li.addEventListener("click", () => {
li.classList.toggle("active");
});
});
});