Difference between revisions of "MediaWiki:Common.js"

From Drawn to Life Wiki
(clarity test)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
//Bing
+
/**
(function(c,l,a,r,i,t,y){
+
* @fileoverview dragscroll - scroll area by dragging
        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
+
* @version 0.0.8
        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i+"?ref=bwt";
+
*
        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
+
* @license MIT, see http://github.com/asvd/dragscroll
    })(window, document, "clarity", "script", "ckmf3qso91");
+
* @copyright 2015 asvd <heliosframework@gmail.com>
 +
*/
  
// Drag to scroll for template levelmap
+
 
    $(document).ready(function () {      
+
(function (root, factory) {
        $('.TEMPLATE-LevelMap').mousedown(function (event) {
+
    if (typeof define === 'function' && define.amd) {
            $(this)
+
        define(['exports'], factory);
                .data('down', true)
+
    } else if (typeof exports !== 'undefined') {
                .data('x', event.clientX)
+
        factory(exports);
                .data('scrollLeft', this.scrollLeft);
+
    } else {
               
+
         factory((root.dragscroll = {}));
            return false;
+
    }
         }).mouseup(function (event) {
+
}(this, function (exports) {
            $(this).data('down', false);
+
    var _window = window;
        }).mousemove(function (event) {
+
    var _document = document;
            if ($(this).data('down') == true) {
+
    var mousemove = 'mousemove';
                this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX;
+
    var mouseup = 'mouseup';
            }
+
    var mousedown = 'mousedown';
        }).mousewheel(function (event, delta) {
+
    var EventListener = 'EventListener';
            this.scrollLeft -= (delta * 30);
+
    var addEventListener = 'add'+EventListener;
        }).css({
+
    var removeEventListener = 'remove'+EventListener;
            'overflow' : 'hidden',
+
     var newScrollX, newScrollY;
            'cursor' : '-moz-grab'
+
 
        });
+
     var dragged = [];
     });
+
     var reset = function(i, el) {
      
+
         for (i = 0; i < dragged.length;) {
     $(window).mouseout(function (event) {
+
             el = dragged[i++];
         if ($('.TEMPLATE-LevelMap').data('down')) {
+
            el = el.container || el;
             try {
+
            el[removeEventListener](mousedown, el.md, 0);
                if (event.originalTarget.nodeName == 'BODY' || event.originalTarget.nodeName == 'HTML') {
+
            _window[removeEventListener](mouseup, el.mu, 0);
                    $('.TEMPLATE-LevelMap').data('down', false);
+
             _window[removeEventListener](mousemove, el.mm, 0);
                }               
 
             } catch (e) {}
 
 
         }
 
         }
     });
+
 
 +
        // cloning into array since HTMLCollection is updated dynamically
 +
        dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
 +
        for (i = 0; i < dragged.length;) {
 +
            (function(el, lastClientX, lastClientY, pushed, scroller, cont){
 +
                (cont = el.container || el)[addEventListener](
 +
                    mousedown,
 +
                    cont.md = function(e) {
 +
                        if (!el.hasAttribute('nochilddrag') ||
 +
                            _document.elementFromPoint(
 +
                                e.pageX, e.pageY
 +
                            ) == cont
 +
                        ) {
 +
                            pushed = 1;
 +
                            lastClientX = e.clientX;
 +
                            lastClientY = e.clientY;
 +
 
 +
                            e.preventDefault();
 +
                        }
 +
                    }, 0
 +
                );
 +
 
 +
                _window[addEventListener](
 +
                    mouseup, cont.mu = function() {pushed = 0;}, 0
 +
                );
 +
 
 +
                _window[addEventListener](
 +
                    mousemove,
 +
                    cont.mm = function(e) {
 +
                        if (pushed) {
 +
                            (scroller = el.scroller||el).scrollLeft -=
 +
                                newScrollX = (- lastClientX + (lastClientX=e.clientX));
 +
                            scroller.scrollTop -=
 +
                                newScrollY = (- lastClientY + (lastClientY=e.clientY));
 +
                            if (el == _document.body) {
 +
                                (scroller = _document.documentElement).scrollLeft -= newScrollX;
 +
                                scroller.scrollTop -= newScrollY;
 +
                            }
 +
                        }
 +
                    }, 0
 +
                );
 +
            })(dragged[i++]);
 +
        }
 +
    }
 +
 
 +
     
 +
    if (_document.readyState == 'complete') {
 +
        reset();
 +
    } else {
 +
        _window[addEventListener]('load', reset, 0);
 +
    }
 +
 
 +
     exports.reset = reset;
 +
}));

Latest revision as of 00:15, 1 July 2022

/**
 * @fileoverview dragscroll - scroll area by dragging
 * @version 0.0.8
 * 
 * @license MIT, see http://github.com/asvd/dragscroll
 * @copyright 2015 asvd <[email protected]> 
 */


(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        define(['exports'], factory);
    } else if (typeof exports !== 'undefined') {
        factory(exports);
    } else {
        factory((root.dragscroll = {}));
    }
}(this, function (exports) {
    var _window = window;
    var _document = document;
    var mousemove = 'mousemove';
    var mouseup = 'mouseup';
    var mousedown = 'mousedown';
    var EventListener = 'EventListener';
    var addEventListener = 'add'+EventListener;
    var removeEventListener = 'remove'+EventListener;
    var newScrollX, newScrollY;

    var dragged = [];
    var reset = function(i, el) {
        for (i = 0; i < dragged.length;) {
            el = dragged[i++];
            el = el.container || el;
            el[removeEventListener](mousedown, el.md, 0);
            _window[removeEventListener](mouseup, el.mu, 0);
            _window[removeEventListener](mousemove, el.mm, 0);
        }

        // cloning into array since HTMLCollection is updated dynamically
        dragged = [].slice.call(_document.getElementsByClassName('dragscroll'));
        for (i = 0; i < dragged.length;) {
            (function(el, lastClientX, lastClientY, pushed, scroller, cont){
                (cont = el.container || el)[addEventListener](
                    mousedown,
                    cont.md = function(e) {
                        if (!el.hasAttribute('nochilddrag') ||
                            _document.elementFromPoint(
                                e.pageX, e.pageY
                            ) == cont
                        ) {
                            pushed = 1;
                            lastClientX = e.clientX;
                            lastClientY = e.clientY;

                            e.preventDefault();
                        }
                    }, 0
                );

                _window[addEventListener](
                    mouseup, cont.mu = function() {pushed = 0;}, 0
                );

                _window[addEventListener](
                    mousemove,
                    cont.mm = function(e) {
                        if (pushed) {
                            (scroller = el.scroller||el).scrollLeft -=
                                newScrollX = (- lastClientX + (lastClientX=e.clientX));
                            scroller.scrollTop -=
                                newScrollY = (- lastClientY + (lastClientY=e.clientY));
                            if (el == _document.body) {
                                (scroller = _document.documentElement).scrollLeft -= newScrollX;
                                scroller.scrollTop -= newScrollY;
                            }
                        }
                    }, 0
                );
             })(dragged[i++]);
        }
    }

      
    if (_document.readyState == 'complete') {
        reset();
    } else {
        _window[addEventListener]('load', reset, 0);
    }

    exports.reset = reset;
}));