Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

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

Страница интерфейса MediaWiki
Дополнительные действия
Нет описания правки
Нет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
document.addEventListener("DOMContentLoaded", function() {
    var dropdowns = document.querySelectorAll(".dropdown .dropbtn");


    dropdowns.forEach(function(dropbtn) {
mw.loader.using('mediawiki.util').then(function() {
        dropbtn.addEventListener("click", function(event) {
    var isMobile = mw.config.get('skin') === 'minerva';
            event.preventDefault();


            var parent = this.parentNode;
    if (isMobile) {
            var isActive = parent.classList.contains("active");
        // Мобильная версия
        $('.mobile-hide').hide();
    } else {
        // Десктопная версия
        $('.desktop-hide').hide();
    }
});


            // Закрываем все открытые списки перед открытием нового
mw.hook('wikipage.content').add(function($content) {
            document.querySelectorAll(".dropdown").forEach(function(dropdown) {
    $content.find('.dropbtn').on('click', function(event) {
                dropdown.classList.remove("active");
        event.preventDefault();
            });
        var dropdown = $(this).closest('.dropdown');
        var content = dropdown.find('.dropdown-content');


            // Если текущий список не был открыт, открываем его
        // Закрываем все открытые списки
            if (!isActive) {
        $('.dropdown').not(dropdown).removeClass('active').find('.dropdown-content').css('max-height', '0px');
                parent.classList.add("active");
 
             }
        // Открываем/закрываем текущий список
         });
        if (dropdown.hasClass('active')) {
            dropdown.removeClass('active');
             content.css('max-height', '0px');
         } else {
            dropdown.addClass('active');
            content.css('max-height', content[0].scrollHeight + 'px'); // Автоматическая высота
        }
     });
     });
});
});

Текущая версия от 16:11, 13 февраля 2025

/* Размещённый здесь код 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'); // Автоматическая высота
        }
    });
});