41 lines
1.3 KiB
JavaScript
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);
|
|
}
|
|
});
|
|
});
|