Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

MediaWiki:Common.js

Страница интерфейса MediaWiki
Дополнительные действия

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */

mw.loader.using('mediawiki.util').then(function() {
    var isMobile = mw.config.get('skin') === 'minerva';

    if (isMobile) {
        // Мобильная версия
        $('.mobile-hide').hide();
    } else {
        // Десктопная версия
        $('.desktop-hide').hide();
    }
});

mw.hook('wikipage.content').add(function($content) {
    $content.find('.dropbtn').on('click', function(event) {
        event.preventDefault();
        var dropdown = $(this).closest('.dropdown');
        var content = dropdown.find('.dropdown-content');

        // Закрываем все открытые списки
        $('.dropdown').not(dropdown).removeClass('active').find('.dropdown-content').css('max-height', '0px');

        // Открываем/закрываем текущий список
        if (dropdown.hasClass('active')) {
            dropdown.removeClass('active');
            content.css('max-height', '0px');
        } else {
            dropdown.addClass('active');
            content.css('max-height', content[0].scrollHeight + 'px'); // Автоматическая высота
        }
    });
});

// Автоскролл при открытии выпадающих блоков
$(document).ready(function () {
    // Находим все выпадающие блоки
    $('.dropdown .dropbtn').on('click', function () {
        let parent = $(this).closest('.dropdown');

        // Переключаем class .active
        parent.toggleClass('active');

        // Если блок открылся — скроллим
        if (parent.hasClass('active')) {
            setTimeout(() => {
                $('html, body').animate({
                    scrollTop: parent.offset().top - 120 // подстройка под Citizen-header
                }, 400);
            }, 300); // ждём окончания анимации max-height
        }
    });
});

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

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

        var top = $menuItem.offset().top - 80; // Немного отступа сверху
        $('html, body').animate({ scrollTop: top }, 300);
    }, 250);
});