Difference between revisions of "Team:Manchester/Improve"

(Replaced content with "{{Manchester}} {{Manchester/Navbar}} </html> {{Manchester/Footer}}")
 
Line 1: Line 1:
 
{{Manchester}}
 
{{Manchester}}
 
{{Manchester/Navbar}}
 
{{Manchester/Navbar}}
<html>/**
 
* @fileoverview dragscroll - scroll area by dragging
 
* @version 0.0.8
 
*
 
* @license MIT, see http://github.com/asvd/dragscroll
 
* @copyright 2015 asvd <heliosframework@gmail.com>
 
*/
 
  
 
(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;
 
}));
 
 
</html>
 
</html>
 
{{Manchester/Footer}}
 
{{Manchester/Footer}}

Latest revision as of 18:53, 11 October 2018

</html>