Files
interface-kaznautes/assets/app.js

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();
}
});
});
}
});