document.addEventListener('DOMContentLoaded', function() {
// Éléments du menu
const mobileBtn = document.querySelector('.es-mobile-trigger');
const mobileMenu = document.querySelector('.es-mobile-menu');
const mobileOverlay = document.querySelector('.es-mobile-overlay');
const mobileClose = document.querySelector('.es-mobile-close');
// Fonction pour ouvrir/fermer le menu
function toggleMenu() {
mobileBtn.classList.toggle('active');
mobileMenu.classList.toggle('active');
mobileOverlay.classList.toggle('active');
document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : 'auto';
}
// Fonction pour fermer le menu
function closeMenu() {
mobileBtn.classList.remove('active');
mobileMenu.classList.remove('active');
mobileOverlay.classList.remove('active');
document.body.style.overflow = 'auto';
// Fermer tous les sous-menus
document.querySelectorAll('.es-mobile-submenu').forEach(submenu => {
submenu.style.maxHeight = null;
const icon = submenu.previousElementSibling.querySelector('.fa-chevron-down');
if (icon) icon.style.transform = 'rotate(0deg)';
});
}
// Bouton burger principal
if (mobileBtn) {
mobileBtn.addEventListener('click', function(e) {
e.stopPropagation();
toggleMenu();
});
}
// Bouton fermeture
if (mobileClose) {
mobileClose.addEventListener('click', closeMenu);
}
// Overlay
if (mobileOverlay) {
mobileOverlay.addEventListener('click', closeMenu);
}
// Gestion des sous-menus mobiles
document.querySelectorAll('.es-menu-trigger').forEach(trigger => {
trigger.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation();
const submenu = this.nextElementSibling;
const icon = this.querySelector('.fa-chevron-down');
// Fermer les autres sous-menus
document.querySelectorAll('.es-mobile-submenu').forEach(sm => {
if (sm !== submenu) {
sm.style.maxHeight = null;
const otherIcon = sm.previousElementSibling.querySelector('.fa-chevron-down');
if (otherIcon) otherIcon.style.transform = 'rotate(0deg)';
}
});
// Ouvrir/fermer le sous-menu actuel
if (submenu.style.maxHeight) {
submenu.style.maxHeight = null;
if (icon) icon.style.transform = 'rotate(0deg)';
} else {
submenu.style.maxHeight = submenu.scrollHeight + 'px';
if (icon) icon.style.transform = 'rotate(180deg)';
}
});
});
// Fermer le menu après clic sur un lien
document.querySelectorAll('.es-mobile-link:not(.es-menu-trigger)').forEach(link => {
link.addEventListener('click', closeMenu);
});
// Empêcher la propagation des clics dans le menu
if (mobileMenu) {
mobileMenu.addEventListener('click', function(e) {
e.stopPropagation();
});
}
});
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.Ok