48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
import './stimulus_bootstrap.js';
|
|
/*
|
|
* Welcome to your app's main JavaScript file!
|
|
*
|
|
* We recommend including the built version of this JavaScript file
|
|
* (and its CSS file) in your base layout (base.html.twig).
|
|
*/
|
|
// any CSS you import will output into a single css file (app.css in this case)
|
|
import './styles/app.css';
|
|
|
|
// --- Gestion du responsive de la barre de navigation (menu hamburger) --- //
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
// --- Gestion de l'affichage du menu hamburger --- //
|
|
const btn = document.getElementById('mobile-menu-button');
|
|
const menu = document.getElementById('main-menu');
|
|
const iconClosed = document.getElementById('icon-menu-closed');
|
|
const iconOpen = document.getElementById('icon-menu-open');
|
|
|
|
if (hamburger && menu) {
|
|
// Fonction pour gérer l'ouverture/fermeture du menu
|
|
const toggleMenu = () => {
|
|
menu.classList.toggle('hidden');
|
|
// Gestion alternance bouton hamburger ou croix
|
|
iconClosed.classList.toggle('hidden');
|
|
iconOpen.classList.toggle('hidden');
|
|
|
|
// Mise ne place de l'accessibilité
|
|
const isHidden = menu.classList.contains('hidden');
|
|
btn.setAttribute('aria-expanded', !isHidden);
|
|
};
|
|
|
|
// Action au clic sur le bouton hamburger
|
|
btn.addEventListener('click', toggleMenu);
|
|
|
|
// Action au clic sur un des liens du menu
|
|
const menuLinks = menu.querySelectorAll('a');
|
|
|
|
menuLinks.forEach(link => {
|
|
link.addEventListener('click', () => {
|
|
// On force la fermeture au clic uniquement si le menu est ouvert sur mobile
|
|
if (!menu.classList.contains('hidden')) {
|
|
toggleMenu();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|