MediaWiki:Common.js: различия между версиями

Нет описания правки
Нет описания правки
Строка 53: Строка 53:
});
});


document.addEventListener("DOMContentLoaded", function () {
// Автоскролл после открытия спойлера в меню Citizen
     const dropdowns = document.querySelectorAll(".dropdown");
$(document).on('click', '.citizen-menu .mw-collapsible-toggle', function () {
     var $menuItem = $(this).closest('.mw-collapsible');


     dropdowns.forEach(dropdown => {
     // Даем анимации Citizen завершиться (200–300 мс)
         const btn = dropdown.querySelector(".dropbtn");
    setTimeout(function () {
         if ($menuItem.hasClass('mw-collapsed')) return; // Если закрыто — не скроллим


         btn.addEventListener("click", function () {
         var top = $menuItem.offset().top - 80; // Немного отступа сверху
 
        $('html, body').animate({ scrollTop: top }, 300);
            // закрываем другие спойлеры
     }, 250);
            dropdowns.forEach(d => {
                if (d !== dropdown) d.classList.remove("active");
            });
 
            // переключаем текущий
            dropdown.classList.toggle("active");
 
            // если открыт — скроллим к нему
            if (dropdown.classList.contains("active")) {
                setTimeout(() => {
                    dropdown.scrollIntoView({
                        behavior: "smooth",
                        block: "start"
                    });
                }, 150); // ждем пока CSS-анимация начнёт увеличивать высоту
            }
        });
     });
});
});