MediaWiki:SupportPage.js: Difference between revisions
Content deleted Content added
No edit summary |
check for languageSwitcherBackdrop |
||
(14 intermediate revisions by the same user not shown) | |||
Line 5:
$(function() {
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);
}
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');
} else {
}
}
languageSwitcher.addEventListener('scroll', checkScroll);
▲ /* -- end of language bar code -- */
/* -- table of contents code -- */
// Build a list of corresponding
var toc = [];
$('.sp-page [href^="#
var id = $(this).attr('href').replace('#', '');
toc.push({
Line 45 ⟶ 73:
toc[i].link.on( 'click', toc[i], smoothScroll );
}
// fix inbound fragment links
function delayedFragmentTargetOffset() {
var offset = $(':target').offset();
if (offset) {
var scrollto = offset.top - scrollOffset;
$('html, body').animate({ scrollTop: scrollto }, 0);
}
}
setTimeout(delayedFragmentTargetOffset, 200);
// Highlight current section in toc
var lastSection;
function
var fromTop = $(this).scrollTop(); // Get container scroll position
var currentSection = toc.filter(function(item) {
return fromTop > item.anchor.offset().top - 64;
});
currentSection = currentSection[currentSection.length - 1];
if ( currentSection && lastSection !== currentSection ) {
Line 58 ⟶ 98:
$('#toc > ul a').removeClass('-active');
currentSection.link.addClass('-active');
}
if ( fromTop === 0 ) {
$('.sp-top-nav').removeClass('pinned');
} else {
$('.sp-top-nav').addClass('pinned');
}
}
$(window).scroll(
/* -- end of table of contents code -- */
|