MediaWiki:Common.js: различия между версиями
Страница интерфейса MediaWiki
Дополнительные действия
Askell (обсуждение | вклад) Нет описания правки Метка: ручная отмена |
Askell (обсуждение | вклад) Нет описания правки |
||
| Строка 29: | Строка 29: | ||
dropdown.addClass('active'); | dropdown.addClass('active'); | ||
content.css('max-height', content[0].scrollHeight + 'px'); // Автоматическая высота | 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 | |||
} | } | ||
}); | }); | ||
}); | }); | ||
Версия от 21:15, 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'); // Автоматическая высота
}
});
});
// Автоскролл при открытии выпадающих блоков
$(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
}
});
});