(function ($) { Moebooru = {}; Moe = $(Moebooru); Moebooru.path = function (url) { return PREFIX === '/' ? url : PREFIX + url; } // XXX: Tested on chrome, mozilla, msie(9/10) // might or might not works in other browser Moebooru.dragElement = function(el) { var win = $(window), doc = $(document), prevPos = []; el.on('dragstart', function () { return false; }); el.on('mousedown', function (e) { if (e.which === 1) { var pageScroller = function(e) { var scroll = current(e.clientX, e.clientY); scrollTo(scroll[0], scroll[1]); return false; }; el.css('cursor', 'pointer'); prevPos = [e.clientX, e.clientY]; doc.on('mousemove', pageScroller); doc.on('mouseup', function (e) { doc.off('mousemove', pageScroller); el.css('cursor', 'auto'); return false; }); return false; } }); function current(x, y) { var off = [window.pageXOffset || document.documentElement.scrollLeft||document.body.scrollLeft, window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop], offset = [off[0] + (prevPos[0] - x), off[1] + (prevPos[1] - y)]; prevPos[0] = x; prevPos[1] = y; return offset; } } })(jQuery);