MediaWiki:Common.js: различия между версиями
Страница интерфейса MediaWiki
Дополнительные действия
Askell (обсуждение | вклад) Нет описания правки |
Askell (обсуждение | вклад) Нет описания правки |
||
| Строка 34: | Строка 34: | ||
// Автоскролл после открытия спойлера в меню Citizen | // Автоскролл после открытия спойлера в меню Citizen | ||
$(document).on('click', '. | $(document).on('click', '.dropdown .dropbtn', function () { | ||
// Даем анимации | var $dropdown = $(this).closest('.dropdown'); | ||
var $content = $dropdown.find('.dropdown-content'); | |||
// Даем CSS-анимации завершиться, если она есть | |||
setTimeout(function () { | setTimeout(function () { | ||
var top = $ | // Если блок теперь виден — скроллим к нему | ||
if ($content.is(':visible')) { | |||
}, | var top = $dropdown.offset().top - 80; // отступ сверху (регулируется) | ||
$('html, body').animate({ scrollTop: top }, 300); | |||
} | |||
}, 200); | |||
}); | }); | ||
Текущая версия от 21:38, 2 декабря 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'); // Автоматическая высота
}
});
});
// Автоскролл после открытия спойлера в меню Citizen
$(document).on('click', '.dropdown .dropbtn', function () {
var $dropdown = $(this).closest('.dropdown');
var $content = $dropdown.find('.dropdown-content');
// Даем CSS-анимации завершиться, если она есть
setTimeout(function () {
// Если блок теперь виден — скроллим к нему
if ($content.is(':visible')) {
var top = $dropdown.offset().top - 80; // отступ сверху (регулируется)
$('html, body').animate({ scrollTop: top }, 300);
}
}, 200);
});