MediaWiki:SupportPage.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
rm Flickity, not using it any more Tag: Replaced |
add code to show language expander only if needed |
||
Line 5: | Line 5: | ||
$(function() { |
$(function() { |
||
/* -- language bar code -- */ |
|||
function showHideLanguageExpand() { |
|||
if ( $('.sp-languages ul').height() > $('.sp-languages').height() ) { |
|||
$('.sp-languages-expand').show(); |
|||
} else { |
|||
$('.sp-languages-expand').hide(); |
|||
} |
|||
} |
|||
showHideLanguageExpand(); |
|||
$( window ).resize( showHideLanguageExpand ); |
|||
/* -- end of language bar code -- */ |
|||
/* -- table of contents code -- */ |
/* -- table of contents code -- */ |
Revision as of 16:07, 13 September 2018
/*
* MediaWiki:SupportPage.js
* Loaded by MediaWiki:Common.js on support pages e.g. "Problems donating"
*/
$(function() {
/* -- language bar code -- */
function showHideLanguageExpand() {
if ( $('.sp-languages ul').height() > $('.sp-languages').height() ) {
$('.sp-languages-expand').show();
} else {
$('.sp-languages-expand').hide();
}
}
showHideLanguageExpand();
$( window ).resize( showHideLanguageExpand );
/* -- end of language bar code -- */
/* -- table of contents code -- */
// Build a list of corresponding toc links and anchors
var toc = [];
$('#toc > ul a').each( function() {
var id = $(this).attr('href').replace('#', '');
toc.push({
link: $(this),
anchor: $( document.getElementById(id) )
});
});
// Add smooth scrolling effect
var scrollOffset = 24, // Offset in px
scrollDuration = 500, // in ms
smoothScroll = function(event) {
var offsetTop = event.data.anchor.offset().top;
$('html, body').stop().animate({
scrollTop: offsetTop - scrollOffset
}, scrollDuration);
event.preventDefault();
};
for (var i = 0; i < toc.length; i++) {
toc[i].link.on( 'click', toc[i], smoothScroll );
}
// Highlight current section in toc
var lastSection;
$(window).scroll(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 ( lastSection !== currentSection ) {
lastSection = currentSection;
$('#toc > ul a').removeClass('-active');
currentSection.link.addClass('-active');
}
});
/* -- end of table of contents code -- */
});