MediaWiki:Common.js: Difference between revisions

MediaWiki interface page
mNo edit summary
(does this break if I remove it?)
Line 61: Line 61:
   $('.lazyimg').prop('loading', 'lazy');
   $('.lazyimg').prop('loading', 'lazy');
});
});
(function(window, $, mw) {
if (window.responsiveImageMapLoaded) return;
window.responsiveImageMapLoaded = true;
function rwdImageMap($img) {
$img.each(function() {
if (typeof($(this).attr('usemap')) == 'undefined')
return;
var that = this,
$that = $(that);
// Since WebKit doesn't know the height until after the image has loaded, perform everything in an onload copy
$('<img />').on('load', function() {
var attrW = 'width',
attrH = 'height',
w = $that.attr(attrW),
h = $that.attr(attrH);
if (!w || !h) {
var temp = new Image();
temp.src = $that.attr('src');
if (!w)
w = temp.width;
if (!h)
h = temp.height;
}
var wPercent = $that.width()/100,
hPercent = $that.height()/100,
map = $that.attr('usemap').replace('#', ''),
c = 'coords';
// The ImageMap MediaWiki extension uses the same map name for
// identical maps on different images (probably the resulf of
// a hash function). As such, the manipulation must be limited
// not only by the map name but also to only sibling map
$that.siblings('map[name="' + map + '"]').find('area').each(function() {
var $this = $(this);
if (!$this.data(c))
$this.data(c, $this.attr(c));
var coords = $this.data(c).split(','),
coordsPercent = new Array(coords.length);
for (var i = 0; i < coordsPercent.length; ++i) {
if (i % 2 === 0)
coordsPercent[i] = parseInt(((coords[i]/w)*100)*wPercent);
else
coordsPercent[i] = parseInt(((coords[i]/h)*100)*hPercent);
}
$this.attr(c, coordsPercent.toString());
});
}).attr('src', $that.attr('src'));
});
}
mw.hook('wikipage.content').add(function($e) {
    var $img =
    $e.find('.responsive-imagemap .noresize:not(.made-responsive)').css({
        'width': '',
        'height': ''
    })
    .addClass('made-responsive')
    .find('img[usemap]');
rwdImageMap($img);
});
$(window).resize(function() {
rwdImageMap($('.responsive-imagemap .made-responsive img[usemap]'));
});


})(this, jQuery, mediaWiki);
})(this, jQuery, mediaWiki);

Revision as of 13:29, 16 August 2022

/* Any JavaScript here will be loaded for all users on every page load. */
mw.loader.load( '/w/index.php?title=MediaWiki:ResponsiveImageMap.js&action=raw&ctype=text/javascript' );

$(document).ready(function() {
  if (localStorage.getItem("client-monochrome-toggle") === "1") {
     var allElements = document.querySelectorAll(".colorful-text");
     for(i=0; i<allElements.length; i++)
     { 
       allElements[i].classList.remove('colorful-text');
     }
  }

  //==== Movelist Toggles ==== Written by SageVarq
  if (document.getElementsByClassName("movelist-toggles")) {
    // Hide all move lists
    var $movelists = $('.movelist');

    var currentMovelist = 1;

    displayMovelist(currentMovelist);
    $('.movelist-toggle-button').each(addToggles);

    function swapMovelist(e) {
      var movelistToggleClicked = $(this).data("id");
      var nextMovelist = movelistToggleClicked.substring(movelistToggleClicked.length - 1);
      if (currentMovelist != nextMovelist) {
        currentMovelist = nextMovelist;
        displayMovelist(nextMovelist);
      }
    }

    function displayMovelist(target) {
      hideAllMovelists();
      $("#movelist-" + target).css("display", "block");
      $("#movelist-toggle-" + target).addClass("movelist-toggle-on");
    }

    function hideAllMovelists() {
      $movelists.css("display", "none");
      $('.movelist-toggle-button').removeClass("movelist-toggle-on").addClass("movelist-toggle-off");
    }

    function addToggles() {
      $(this).data("id", $(this).attr("id"));
      $(this).click(swapMovelist);
    }
  }

  $('.frameChart-toggle-off').click(function() {
    $('.frameChart-toggle-off').hide();
    $('.frameChart-toggle-on').show();
    $('.frameChart').hide();
  });

  $('.frameChart-toggle-on').click(function() {
    $('.frameChart-toggle-off').show();
    $('.frameChart-toggle-on').hide();
    $('.frameChart').show();
  });

  $('.lazyimg').prop('loading', 'lazy');
});

})(this, jQuery, mediaWiki);