Line 222: |
Line 222: |
| }); | | }); |
| }); | | }); |
− |
| |
− | /*
| |
− | Scrolling function applied to Template:Map/ImageNode.
| |
− | Author: gaka
| |
− | */
| |
− | (function(mw, $) {
| |
− |
| |
− | "use strict";
| |
− |
| |
− | $(document).ready(function() {
| |
− |
| |
− | console.log("Scroll v1.0.1");
| |
− |
| |
− | /**
| |
− | * Scroll event propagator.
| |
− | *
| |
− | * E.g., an element can have a scroll (overflow:auto) and images, but scrolling it won't perform
| |
− | * lazy loading for images, since scroll event is not propagated.
| |
− | */
| |
− |
| |
− | $('.scrollable').each(function() {
| |
− | $(this).scroll(function() {
| |
− | window.dispatchEvent(new CustomEvent('scroll'));
| |
− | });
| |
− | });
| |
− |
| |
− | /**
| |
− | * Template:Map scroll on click support.
| |
− | */
| |
− |
| |
− | function updateContent() {
| |
− | $(".map-node a").off("click");
| |
− | $(".map-node a").click(function(e) {
| |
− | var href = $(this).attr("href");
| |
− | var $element = $(href);
| |
− | var $container = $element.parent();
| |
− | if ($element.length === 1 && $container.length === 1) {
| |
− | $container.scrollTop($container.scrollTop() - $container.offset().top + $element.offset().top);
| |
− | e.preventDefault();
| |
− | }
| |
− | return false;
| |
− | });
| |
− | }
| |
− |
| |
− | updateContent();
| |
− | mw.hook("wikipage.content").add(updateContent);
| |
− |
| |
− | });
| |
− |
| |
− | }(mediaWiki, jQuery));
| |