MediaWiki:SupportPage.js: Difference between revisions

Content deleted Content added
support prefers-reduced-motion
Tag: Reverted
check for languageSwitcherBackdrop
 
(9 intermediate revisions by the same user not shown)
Line 5:
 
$(function() {
/* -- New language barswitcher code -- */
var reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
var languageSwitcherButton = document.querySelector('.language-switcher__button'),
languageSwitcher = document.querySelector('.language-switcher__content'),
languageSwitcherBackdrop = document.querySelector('.dropdown-backdrop');
 
languageSwitcherButton.addEventListener('click', function() {
if ( languageSwitcherButton.ariaExpanded === 'true' ) {
hideLanguageSwitcher();
} else {
showLanguageSwitcher();
checkScroll();
}
});
 
if ( languageSwitcherBackdrop ) {
languageSwitcherBackdrop.addEventListener('click', hideLanguageSwitcher);
}
 
function showHideLanguageExpandshowLanguageSwitcher() {
languageSwitcherButton.ariaExpanded = 'true';
languageSwitcher.hidden = false;
document.body.dataset.dropdownOpen = 'true';
}
 
function hideLanguageSwitcher() {
languageSwitcherButton.ariaExpanded = 'false';
languageSwitcher.hidden = true;
document.body.dataset.dropdownOpen = 'false';
}
 
function checkScroll() {
/* -- language bar code -- */
if ( languageSwitcher.offsetHeight + languageSwitcher.scrollTop >= languageSwitcher.scrollHeight ) {
function showHideLanguageExpand() {
languageSwitcher.classList.remove('scroll-shadow');
if ( $('.sp-languages ul').height() > $('.sp-languages').height() ) {
} else {
$('.sp-languages-expand').show();
} else if ( !$('languageSwitcher.sp-languages')classList.hasClassadd('scroll-expandedshadow') ) {;
$('.sp-languages-expand').hide();
}
}
 
languageSwitcher.addEventListener('scroll', checkScroll);
showHideLanguageExpand();
/* -- endEnd of new language barswitcher code -- */
$( window ).resize( showHideLanguageExpand );
/* -- end of language bar code -- */
 
/* -- table of contents code -- */
// Build a list of corresponding tocfragment links and anchors
var toc = [];
$('.sp-page [href^="#toc > ul a"]').each( function() {
var id = $(this).attr('href').replace('#', '');
toc.push({
Line 35 ⟶ 61:
// Add smooth scrolling effect
var scrollOffset = 88, // Offset in px
scrollDuration = reduceMotion ? 0 : 500, // in ms
smoothScroll = function(event) {
var offsetTop = event.data.anchor.offset().top;