Difference between revisions of "MediaWiki:Common.js"

From WarRocketWiki
Jump to navigation Jump to search
Tag: Manual revert
 
(3 intermediate revisions by the same user not shown)
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;
            $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/>', {  
   var $elem = jQuery('<script/>', {  
     'data-aff': "amazon.com, www.amazon.com : tag = internsocie02-20",
     'data-aff': "amazon.com, www.amazon.com : tag = internsocie02-20",
Line 9: Line 38:
   });
   });
   $("head").append($elem);
   $("head").append($elem);
});
document.addEventListener('DOMContentLoaded', function() {
  const editLinks = document.querySelectorAll('.mw-editsection a'); // Select edit links
  const headings = document.querySelectorAll('h2'); // Select H2 headings
  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;
      for (let i = 0; i < headings.length; i++) {
        if (headings[i] === heading && i + 1 < headings.length) {
          nextHeadingRect = headings[i + 1].getBoundingClientRect();
          break;
        }
      }
      if (rect.top < 0 && (nextHeadingRect === null || rect.bottom < nextHeadingRect.top)) {
        editLink.classList.add('edit-link-fixed');
        console.log("make it fixed");
      } else {
        editLink.classList.remove('edit-link-fixed');
      }
    });
  }


  window.addEventListener('scroll', handleScroll);
  handleScroll(); // Initial check on page load
});
});

Latest revision as of 09:48, 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);


});