Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Line 8: | Line 8: | ||
var isInViewport = function (elem) { | var isInViewport = function (elem) { | ||
console.log('elem', elem) | |||
var distance = elem.getBoundingClientRect(); | var distance = elem.getBoundingClientRect(); | ||
return ( | return ( |
Revision as of 01:18, 25 October 2020
/* Any JavaScript here will be loaded for all users on every page load. */ // Scripts to use when viewing articles /* if (mw.config.get('wgIsArticle') || window.location.href.indexOf('action=submit') > -1 || mw.config.get('wgNamespaceNumber') == -1) { mw.loader.load( '/index.php?title=MediaWiki:CollapsibleTables.js&action=raw&ctype=text/javascript' ); } */ var isInViewport = function (elem) { console.log('elem', elem) var distance = elem.getBoundingClientRect(); return ( distance.top >= 0 && distance.left >= 0 && distance.bottom <= (window.innerHeight || document.documentElement.clientHeight) && distance.right <= (window.innerWidth || document.documentElement.clientWidth) ); }; window.addEventListener("scroll", function(){ console.log('scrolling') if (isInViewport($('#taboola-below-article-thumbnails'))) { console.log('it is in viewport!') } else { console.log('it is not in viewport') } }) /* $(window).scroll(function () { console.log('scrolling') if (isInViewport($('#taboola-below-article-thumbnails'))) { console.log('it is in viewport!') } else { console.log('it is not in viewport') } }); */ window.addEventListener("load", function(){ var positionAdDivs= function () { console.log('version 2.7') var fixed = $("#IL_INSEARCH"); var fixed_position = $("#IL_INSEARCH").offset().top; var fixed_height = $("#IL_INSEARCH").height(); var toCross = $("#taboola-below-article-thumbnails") var toCross_position = $("#taboola-below-article-thumbnails").offset().top; var toCross_height = $("#taboola-below-article-thumbnails").height(); console.log('toCross is visible: ', toCross.is(":visible")) /* console.log('fixed_position', fixed_position) console.log('fixed_height', fixed_height) console.log('toCross_position', toCross_position) console.log('toCross_height', toCross_height) */ if (fixed_position + fixed_height < toCross_position) { console.log('fixed_position', fixed_position) } else if (fixed_position > toCross_position + toCross_height) { console.log('remove displaynone class') console.log('fixed_position', fixed_position) console.log('fixed_height', fixed_height) console.log('toCross_position', toCross_position) console.log('toCross_height', toCross_height) fixed.removeClass('displaynone'); } else { var fixed_classes = fixed.attr('class') if (fixed_classes.includes('displaynone')){ console.log('already has displaynone class!', 'fixed_position', fixed_position) } else { console.log('add displaynone class!') console.log('fixed_position', fixed_position) console.log('fixed_height', fixed_height) console.log('toCross_position', toCross_position) console.log('toCross_height', toCross_height) fixed.addClass('displaynone'); } } /* if (fixed_position + fixed_height < toCross_position) { var fixed_classes = fixed.attr('class') console.log('fixed_classes', fixed_classes) if (fixed_classes.includes('displaynone')){ console.log('remove displaynone class!') fixed.removeClass('displaynone') } else { console.log('already removed displaynone class') } } else { var fixed_classes = fixed.attr('class') console.log('fixed_classes', fixed_classes) if (fixed_classes.includes('displaynone')){ console.log('already has displaynone class') } else { console.log('add displaynone class!') fixed.addClass('displaynone') } } */ }; // if fixed_position is Not found, do nothing if (!$("#IL_INSEARCH").offset()){ // otherwise start the interval } else { setInterval(positionAdDivs, 200); } });