MediaWiki:Gadget-stickyheader.js

After saving, you may need to bypass your browser's cache to see the changes. For further information, see Wikipedia:Bypass your cache.

  • In most Windows and Linux browsers: Hold down Ctrl and press F5.
  • In Safari: Hold down ⇧ Shift and click the Reload button.
  • In Chrome and Firefox for Mac: Hold down both ⌘ Cmd+⇧ Shift and press R.
"use strict";

;
(function ($, mw) {
  $('body').addClass('wgl-stickyheader');
  function onScroll() {
    var personal = $('#p-personal');
    var targetEle = document.getElementById("mw-head");
    var head = $('#mw-head');
    if (mw.config.get('wgAction') === 'edit' || window.location.search.includes('veaction')) {
      // We're on an edit page, do nothing and reset all the stuff
      if (personal.is(":hidden")) {
        personal.show();
        head.removeClass('sticky-hidden');
      }
    } else {
      if (window.scrollY > targetEle.offsetTop + targetEle.offsetHeight) {
        if (personal.is(":visible")) {
          personal.hide();
          head.addClass('sticky-hidden');
        }
      } else {
        if (personal.is(":hidden")) {
          personal.show();
          head.removeClass('sticky-hidden');
        }
      }
    }
  }
  onScroll();
  $(window).scroll(onScroll);

  // hidden by css when sticky-hidden is not on
  if (mw.config.get('wgIsMainPage') !== true) {
    mw.util.addPortletLink('p-namespaces', '/', 'Main Page', 'ca-nstab-mainpage', 'Visit the main page');
  }
})(jQuery, mediaWiki);