Difference between revisions of "MediaWiki:Common.js"

From WarRocketWiki
Jump to navigation Jump to search
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function() {
$(document).ready(function() {
    $('h2').each(function() {
        var $h2 = $(this);
        var $editSpan = $h2.find('.mw-editsection');
        if ($editSpan.length) {
            var originalTop = $editSpan.offset().top;
            var $nextH2 = $h2.nextAll('h2').first();
            var nextH2Top = $nextH2.length ? $nextH2.offset().top : Number.MAX_SAFE_INTEGER;


const editLinks = document.querySelectorAll('.mw-editsection a'); // Select edit links
            $editSpan.data('originalTop', originalTop);
  const headings = document.querySelectorAll('h2'); // Select H2 headings
            $editSpan.data('nextH2Top', nextH2Top);
 
        }
  function handleScroll() {
     });
     editLinks.forEach(editLink => {
      const editSection = editLink.parentElement.parentElement; // Get the edit section element
      const heading = editSection.parentElement; // Get the parent heading element.
 
      const rect = editSection.getBoundingClientRect();
      const headingRect = heading.getBoundingClientRect();


      let nextHeadingRect = null;
    $(window).on('scroll', function() {
      for (let i = 0; i < headings.length; i++) {
        var scrollTop = $(window).scrollTop();
        if (headings[i] === heading && i + 1 < headings.length) {
        $('.mw-editsection').each(function() {
          nextHeadingRect = headings[i + 1].getBoundingClientRect();
            var $editSpan = $(this);
          break;
            var originalTop = $editSpan.data('originalTop');
        }
            var nextH2Top = $editSpan.data('nextH2Top');
      }


      if (rect.top < 0 && (nextHeadingRect === null || rect.bottom < nextHeadingRect.top)) {
            if (scrollTop >= originalTop && scrollTop < nextH2Top) {
        editLink.classList.add('edit-link-fixed');
                $editSpan.addClass('fixed-edit-button');
        console.log("make it fixed");
            } else {
      } else {
                $editSpan.removeClass('fixed-edit-button');
        editLink.classList.remove('edit-link-fixed');
            }
      }
        });
     });
     });
  }
  window.addEventListener('scroll', handleScroll);
  handleScroll(); // Initial check on page load





Revision as of 09:41, 3 March 2025

/* Any JavaScript here will be loaded for all users on every page load. */
$(document).ready(function() {
    $('h2').each(function() {
        var $h2 = $(this);
        var $editSpan = $h2.find('.mw-editsection');
        if ($editSpan.length) {
            var originalTop = $editSpan.offset().top;
            var $nextH2 = $h2.nextAll('h2').first();
            var nextH2Top = $nextH2.length ? $nextH2.offset().top : Number.MAX_SAFE_INTEGER;

            $editSpan.data('originalTop', originalTop);
            $editSpan.data('nextH2Top', nextH2Top);
        }
    });

    $(window).on('scroll', function() {
        var scrollTop = $(window).scrollTop();
        $('.mw-editsection').each(function() {
            var $editSpan = $(this);
            var originalTop = $editSpan.data('originalTop');
            var nextH2Top = $editSpan.data('nextH2Top');

            if (scrollTop >= originalTop && scrollTop < nextH2Top) {
                $editSpan.addClass('fixed-edit-button');
            } else {
                $editSpan.removeClass('fixed-edit-button');
            }
        });
    });


  var $elem = jQuery('<script/>', { 
    'data-aff': "amazon.com, www.amazon.com : tag = internsocie02-20",
    'type': "text/javascript", 
    'src': "https://cdn.jsdelivr.net/npm/affiliate@2.0.3/dist/affiliate.js",
    'id': "aff-js",
    'async': "" 
  });
  $("head").append($elem);


});