MediaWiki:Common.js: различия между версиями
Askell (обсуждение | вклад) Нет описания правки |
Askell (обсуждение | вклад) Нет описания правки |
||
| (не показано 18 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ | /* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */ | ||
var | 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); | |||
}); | }); | ||