PageSourceSearch

https://zdrav-nnov.ru/bitrix/templates/ministerstvo_v2/components/bitrix/menu/top_mobile_static/script.js

js zdrav-nnov.ru collected 2026-10-02 05:29:28 UTC 1,562 bytes, 37 lines download raw bytes

1document.addEventListener('DOMContentLoaded', (event) => {
2    const burgerToggle = document.getElementById('burger-toggle');
3    const mobileMenu = document.getElementById('mobile-menu');
4    const bodyElement = document.body;
5
6    // Функция открытия/закрытия меню
7    function toggleMenu() {
8        mobileMenu.classList.toggle('is-active');
9        // Переключаем класс на body для блокировки скролла
10        bodyElement.classList.toggle('no-scroll');
11    }
12
13    // 1. Обработчик клика по бургеру
14    burgerToggle.addEventListener('click', function(e) {
15        e.preventDefault(); 
16        toggleMenu();
17    });
18
19    // 2. Обработчик клика вне меню (закрытие)
20    document.addEventListener('click', function(e) {
21        // Проверяем, если меню открыто И клик был вне меню И вне кнопки бургера
22        const isMenuOpened = mobileMenu.classList.contains('is-active');
23        const clickedInsideMenu = mobileMenu.contains(e.target);
24        const clickedOnBurger = burgerToggle.contains(e.target);
25
26        if (isMenuOpened && !clickedInsideMenu && !clickedOnBurger) {
27            toggleMenu();
28        }
29    });
30
31    // Опционально: Закрытие меню по нажатию на Esc
32    document.addEventListener('keydown', function(e) {
33        if (e.key === 'Escape' && mobileMenu.classList.contains('is-active')) {
34            toggleMenu();
35        }
36    });
37});

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.