PageSourceSearch

https://1calendrier.com/assets/menu.js?e86767c

js 1calendrier.com collected 2026-10-10 01:51:02 UTC 1,686 bytes, 35 lines download raw bytes

1/* Menu mobile plein écran (référence Apple), partagé homepage + pages
2   publiques du portail. Ouverture après dé-masquage (une frame) pour la
3   cascade ; Échap referme ; le focus ne revient au bouton qu'au clavier.
4   Les éléments qui ouvrent ou referment le menu portent [data-menu-toggle]
5   (le bouton hamburger et les liens du menu) : leurs clics sont pris par
6   délégation, aucun attribut onclick n'est nécessaire. */
7window.toggleMenu = function (rendreFocus) {
8    var menu = document.getElementById('menu-mobile');
9    var burger = document.querySelector('.burger');
10    if (!menu || !burger) { return; }
11    var ouvert = document.documentElement.classList.contains('menu-ouvert');
12    if (ouvert) {
13        document.documentElement.classList.remove('menu-ouvert');
14        menu.hidden = true;
15        burger.setAttribute('aria-expanded', 'false');
16        burger.setAttribute('aria-label', 'Ouvrir le menu');
17        if (rendreFocus) { burger.focus(); }
18    } else {
19        menu.hidden = false;
20        requestAnimationFrame(function () {
21            requestAnimationFrame(function () {
22                document.documentElement.classList.add('menu-ouvert');
23            });
24        });
25        burger.setAttribute('aria-expanded', 'true');
26        burger.setAttribute('aria-label', 'Fermer le menu');
27    }
28};
29document.addEventListener('click', function (e) {
30    var el = e.target && e.target.closest ? e.target.closest('[data-menu-toggle]') : null;
31    if (el) { window.toggleMenu(); }
32});
33document.addEventListener('keydown', function (e) {
34    if ('Escape' === e.key && document.documentElement.classList.contains('menu-ouvert')) { toggleMenu(true); }
35});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.