personnal/ecole/public/js/navigation.js

41 lines
1.3 KiB
JavaScript

/**
* Affiche le loader lors des navigations entre pages (localhost)
* Comme on est en localhost, on peut se permettre d'afficher le loader
* au clic sur un lien, il disparaîtra automatiquement au chargement de la nouvelle page
*/
document.addEventListener("DOMContentLoaded", () => {
// Intercepter les clics sur les liens internes pour afficher le loader
document.body.addEventListener("click", (e) => {
const link = e.target.closest("a");
// Si c'est un lien interne (commence par /) et pas un lien spécial
if (link &&
link.getAttribute("href") &&
link.getAttribute("href").startsWith("/") &&
!link.classList.contains("modal-close") &&
!link.getAttribute("href").startsWith("/#")) {
// Afficher le loader avant la navigation
if (typeof showLoader === 'function') {
showLoader();
}
}
});
// Afficher le loader lors du rechargement (F5, Cmd+R)
window.addEventListener("beforeunload", () => {
if (typeof showLoader === 'function') {
showLoader();
}
});
// Cacher le loader quand la page est complètement chargée
window.addEventListener("load", () => {
if (typeof hideLoader === 'function') {
// Petit délai pour éviter le flash
setTimeout(hideLoader, 100);
}
});
});