3706 lines
180 KiB
JavaScript
3706 lines
180 KiB
JavaScript
/* jquery.nicescroll v3.7.6 InuYaksa - MIT - https://nicescroll.areaaperta.com */
|
|
!(function (e) {
|
|
"function" == typeof define && define.amd
|
|
? define(["jquery"], e)
|
|
: "object" == typeof exports
|
|
? (module.exports = e(require("jquery")))
|
|
: e(jQuery);
|
|
})(function (e) {
|
|
"use strict";
|
|
var o = !1,
|
|
t = !1,
|
|
r = 0,
|
|
i = 2e3,
|
|
s = 0,
|
|
n = e,
|
|
l = document,
|
|
a = window,
|
|
c = n(a),
|
|
d = [],
|
|
u =
|
|
a.requestAnimationFrame ||
|
|
a.webkitRequestAnimationFrame ||
|
|
a.mozRequestAnimationFrame ||
|
|
!1,
|
|
h =
|
|
a.cancelAnimationFrame ||
|
|
a.webkitCancelAnimationFrame ||
|
|
a.mozCancelAnimationFrame ||
|
|
!1;
|
|
if (u) a.cancelAnimationFrame || (h = function (e) {});
|
|
else {
|
|
var p = 0;
|
|
(u = function (e, o) {
|
|
var t = new Date().getTime(),
|
|
r = Math.max(0, 16 - (t - p)),
|
|
i = a.setTimeout(function () {
|
|
e(t + r);
|
|
}, r);
|
|
return (p = t + r), i;
|
|
}),
|
|
(h = function (e) {
|
|
a.clearTimeout(e);
|
|
});
|
|
}
|
|
var m = a.MutationObserver || a.WebKitMutationObserver || !1,
|
|
f =
|
|
Date.now ||
|
|
function () {
|
|
return new Date().getTime();
|
|
},
|
|
g = {
|
|
zindex: "auto",
|
|
cursoropacitymin: 0,
|
|
cursoropacitymax: 1,
|
|
cursorcolor: "#424242",
|
|
cursorwidth: "6px",
|
|
cursorborder: "1px solid #fff",
|
|
cursorborderradius: "5px",
|
|
scrollspeed: 40,
|
|
mousescrollstep: 27,
|
|
touchbehavior: !1,
|
|
emulatetouch: !1,
|
|
hwacceleration: !0,
|
|
usetransition: !0,
|
|
boxzoom: !1,
|
|
dblclickzoom: !0,
|
|
gesturezoom: !0,
|
|
grabcursorenabled: !0,
|
|
autohidemode: !0,
|
|
background: "",
|
|
iframeautoresize: !0,
|
|
cursorminheight: 32,
|
|
preservenativescrolling: !0,
|
|
railoffset: !1,
|
|
railhoffset: !1,
|
|
bouncescroll: !0,
|
|
spacebarenabled: !0,
|
|
railpadding: { top: 0, right: 0, left: 0, bottom: 0 },
|
|
disableoutline: !0,
|
|
horizrailenabled: !0,
|
|
railalign: "right",
|
|
railvalign: "bottom",
|
|
enabletranslate3d: !0,
|
|
enablemousewheel: !0,
|
|
enablekeyboard: !0,
|
|
smoothscroll: !0,
|
|
sensitiverail: !0,
|
|
enablemouselockapi: !0,
|
|
cursorfixedheight: !1,
|
|
directionlockdeadzone: 6,
|
|
hidecursordelay: 400,
|
|
nativeparentscrolling: !0,
|
|
enablescrollonselection: !0,
|
|
overflowx: !0,
|
|
overflowy: !0,
|
|
cursordragspeed: 0.3,
|
|
rtlmode: "auto",
|
|
cursordragontouch: !1,
|
|
oneaxismousemode: "auto",
|
|
scriptpath: (function () {
|
|
var e =
|
|
l.currentScript ||
|
|
(function () {
|
|
var e = l.getElementsByTagName("script");
|
|
return !!e.length && e[e.length - 1];
|
|
})(),
|
|
o = e ? e.src.split("?")[0] : "";
|
|
return o.split("/").length > 0
|
|
? o.split("/").slice(0, -1).join("/") + "/"
|
|
: "";
|
|
})(),
|
|
preventmultitouchscrolling: !0,
|
|
disablemutationobserver: !1,
|
|
enableobserver: !0,
|
|
scrollbarid: !1,
|
|
},
|
|
v = !1,
|
|
w = function () {
|
|
if (v) return v;
|
|
var e = l.createElement("DIV"),
|
|
o = e.style,
|
|
t = navigator.userAgent,
|
|
r = navigator.platform,
|
|
i = {};
|
|
return (
|
|
(i.haspointerlock =
|
|
"pointerLockElement" in l ||
|
|
"webkitPointerLockElement" in l ||
|
|
"mozPointerLockElement" in l),
|
|
(i.isopera = "opera" in a),
|
|
(i.isopera12 = i.isopera && "getUserMedia" in navigator),
|
|
(i.isoperamini =
|
|
"[object OperaMini]" ===
|
|
Object.prototype.toString.call(a.operamini)),
|
|
(i.isie = "all" in l && "attachEvent" in e && !i.isopera),
|
|
(i.isieold = i.isie && !("msInterpolationMode" in o)),
|
|
(i.isie7 =
|
|
i.isie &&
|
|
!i.isieold &&
|
|
(!("documentMode" in l) || 7 === l.documentMode)),
|
|
(i.isie8 =
|
|
i.isie && "documentMode" in l && 8 === l.documentMode),
|
|
(i.isie9 =
|
|
i.isie && "performance" in a && 9 === l.documentMode),
|
|
(i.isie10 =
|
|
i.isie && "performance" in a && 10 === l.documentMode),
|
|
(i.isie11 = "msRequestFullscreen" in e && l.documentMode >= 11),
|
|
(i.ismsedge = "msCredentials" in a),
|
|
(i.ismozilla = "MozAppearance" in o),
|
|
(i.iswebkit = !i.ismsedge && "WebkitAppearance" in o),
|
|
(i.ischrome = i.iswebkit && "chrome" in a),
|
|
(i.ischrome38 = i.ischrome && "touchAction" in o),
|
|
(i.ischrome22 =
|
|
!i.ischrome38 && i.ischrome && i.haspointerlock),
|
|
(i.ischrome26 =
|
|
!i.ischrome38 && i.ischrome && "transition" in o),
|
|
(i.cantouch =
|
|
"ontouchstart" in l.documentElement || "ontouchstart" in a),
|
|
(i.hasw3ctouch =
|
|
(a.PointerEvent || !1) &&
|
|
(navigator.maxTouchPoints > 0 ||
|
|
navigator.msMaxTouchPoints > 0)),
|
|
(i.hasmstouch = !i.hasw3ctouch && (a.MSPointerEvent || !1)),
|
|
(i.ismac = /^mac$/i.test(r)),
|
|
(i.isios = i.cantouch && /iphone|ipad|ipod/i.test(r)),
|
|
(i.isios4 = i.isios && !("seal" in Object)),
|
|
(i.isios7 = i.isios && "webkitHidden" in l),
|
|
(i.isios8 = i.isios && "hidden" in l),
|
|
(i.isios10 = i.isios && a.Proxy),
|
|
(i.isandroid = /android/i.test(t)),
|
|
(i.haseventlistener = "addEventListener" in e),
|
|
(i.trstyle = !1),
|
|
(i.hastransform = !1),
|
|
(i.hastranslate3d = !1),
|
|
(i.transitionstyle = !1),
|
|
(i.hastransition = !1),
|
|
(i.transitionend = !1),
|
|
(i.trstyle = "transform"),
|
|
(i.hastransform =
|
|
"transform" in o ||
|
|
(function () {
|
|
for (
|
|
var e = [
|
|
"msTransform",
|
|
"webkitTransform",
|
|
"MozTransform",
|
|
"OTransform",
|
|
],
|
|
t = 0,
|
|
r = e.length;
|
|
t < r;
|
|
t++
|
|
)
|
|
if (void 0 !== o[e[t]]) {
|
|
i.trstyle = e[t];
|
|
break;
|
|
}
|
|
i.hastransform = !!i.trstyle;
|
|
})()),
|
|
i.hastransform &&
|
|
((o[i.trstyle] = "translate3d(1px,2px,3px)"),
|
|
(i.hastranslate3d = /translate3d/.test(o[i.trstyle]))),
|
|
(i.transitionstyle = "transition"),
|
|
(i.prefixstyle = ""),
|
|
(i.transitionend = "transitionend"),
|
|
(i.hastransition =
|
|
"transition" in o ||
|
|
(function () {
|
|
i.transitionend = !1;
|
|
for (
|
|
var e = [
|
|
"webkitTransition",
|
|
"msTransition",
|
|
"MozTransition",
|
|
"OTransition",
|
|
"OTransition",
|
|
"KhtmlTransition",
|
|
],
|
|
t = [
|
|
"-webkit-",
|
|
"-ms-",
|
|
"-moz-",
|
|
"-o-",
|
|
"-o",
|
|
"-khtml-",
|
|
],
|
|
r = [
|
|
"webkitTransitionEnd",
|
|
"msTransitionEnd",
|
|
"transitionend",
|
|
"otransitionend",
|
|
"oTransitionEnd",
|
|
"KhtmlTransitionEnd",
|
|
],
|
|
s = 0,
|
|
n = e.length;
|
|
s < n;
|
|
s++
|
|
)
|
|
if (e[s] in o) {
|
|
(i.transitionstyle = e[s]),
|
|
(i.prefixstyle = t[s]),
|
|
(i.transitionend = r[s]);
|
|
break;
|
|
}
|
|
i.ischrome26 && (i.prefixstyle = t[1]),
|
|
(i.hastransition = i.transitionstyle);
|
|
})()),
|
|
(i.cursorgrabvalue = (function () {
|
|
var e = ["grab", "-webkit-grab", "-moz-grab"];
|
|
((i.ischrome && !i.ischrome38) || i.isie) && (e = []);
|
|
for (var t = 0, r = e.length; t < r; t++) {
|
|
var s = e[t];
|
|
if (((o.cursor = s), o.cursor == s)) return s;
|
|
}
|
|
return "url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize";
|
|
})()),
|
|
(i.hasmousecapture = "setCapture" in e),
|
|
(i.hasMutationObserver = !1 !== m),
|
|
(e = null),
|
|
(v = i),
|
|
i
|
|
);
|
|
},
|
|
b = function (e, p) {
|
|
function v() {
|
|
var e = T.doc.css(P.trstyle);
|
|
return (
|
|
!(!e || "matrix" != e.substr(0, 6)) &&
|
|
e
|
|
.replace(/^.*\((.*)\)$/g, "$1")
|
|
.replace(/px/g, "")
|
|
.split(/, +/)
|
|
);
|
|
}
|
|
function b() {
|
|
var e = T.win;
|
|
if ("zIndex" in e) return e.zIndex();
|
|
for (; e.length > 0; ) {
|
|
if (9 == e[0].nodeType) return !1;
|
|
var o = e.css("zIndex");
|
|
if (!isNaN(o) && 0 !== o) return parseInt(o);
|
|
e = e.parent();
|
|
}
|
|
return !1;
|
|
}
|
|
function x(e, o, t) {
|
|
var r = e.css(o),
|
|
i = parseFloat(r);
|
|
if (isNaN(i)) {
|
|
var s =
|
|
3 == (i = I[r] || 0)
|
|
? t
|
|
? T.win.outerHeight() - T.win.innerHeight()
|
|
: T.win.outerWidth() - T.win.innerWidth()
|
|
: 1;
|
|
return T.isie8 && i && (i += 1), s ? i : 0;
|
|
}
|
|
return i;
|
|
}
|
|
function S(e, o, t, r) {
|
|
T._bind(
|
|
e,
|
|
o,
|
|
function (r) {
|
|
var i = {
|
|
original: (r = r || a.event),
|
|
target: r.target || r.srcElement,
|
|
type: "wheel",
|
|
deltaMode: "MozMousePixelScroll" == r.type ? 0 : 1,
|
|
deltaX: 0,
|
|
deltaZ: 0,
|
|
preventDefault: function () {
|
|
return (
|
|
r.preventDefault
|
|
? r.preventDefault()
|
|
: (r.returnValue = !1),
|
|
!1
|
|
);
|
|
},
|
|
stopImmediatePropagation: function () {
|
|
r.stopImmediatePropagation
|
|
? r.stopImmediatePropagation()
|
|
: (r.cancelBubble = !0);
|
|
},
|
|
};
|
|
return (
|
|
"mousewheel" == o
|
|
? (r.wheelDeltaX &&
|
|
(i.deltaX = -0.025 * r.wheelDeltaX),
|
|
r.wheelDeltaY &&
|
|
(i.deltaY = -0.025 * r.wheelDeltaY),
|
|
!i.deltaY &&
|
|
!i.deltaX &&
|
|
(i.deltaY = -0.025 * r.wheelDelta))
|
|
: (i.deltaY = r.detail),
|
|
t.call(e, i)
|
|
);
|
|
},
|
|
r
|
|
);
|
|
}
|
|
function z(e, o, t, r) {
|
|
T.scrollrunning ||
|
|
((T.newscrolly = T.getScrollTop()),
|
|
(T.newscrollx = T.getScrollLeft()),
|
|
(D = f()));
|
|
var i = f() - D;
|
|
if (
|
|
((D = f()),
|
|
i > 350 ? (A = 1) : (A += (2 - A) / 10),
|
|
(e = (e * A) | 0),
|
|
(o = (o * A) | 0),
|
|
e)
|
|
) {
|
|
if (r)
|
|
if (e < 0) {
|
|
if (T.getScrollLeft() >= T.page.maxw) return !0;
|
|
} else if (T.getScrollLeft() <= 0) return !0;
|
|
var s = e > 0 ? 1 : -1;
|
|
X !== s &&
|
|
(T.scrollmom && T.scrollmom.stop(),
|
|
(T.newscrollx = T.getScrollLeft()),
|
|
(X = s)),
|
|
(T.lastdeltax -= e);
|
|
}
|
|
if (o) {
|
|
if (
|
|
(function () {
|
|
var e = T.getScrollTop();
|
|
if (o < 0) {
|
|
if (e >= T.page.maxh) return !0;
|
|
} else if (e <= 0) return !0;
|
|
})()
|
|
) {
|
|
if (
|
|
M.nativeparentscrolling &&
|
|
t &&
|
|
!T.ispage &&
|
|
!T.zoomactive
|
|
)
|
|
return !0;
|
|
var n = T.view.h >> 1;
|
|
T.newscrolly < -n
|
|
? ((T.newscrolly = -n), (o = -1))
|
|
: T.newscrolly > T.page.maxh + n
|
|
? ((T.newscrolly = T.page.maxh + n), (o = 1))
|
|
: (o = 0);
|
|
}
|
|
var l = o > 0 ? 1 : -1;
|
|
B !== l &&
|
|
(T.scrollmom && T.scrollmom.stop(),
|
|
(T.newscrolly = T.getScrollTop()),
|
|
(B = l)),
|
|
(T.lastdeltay -= o);
|
|
}
|
|
(o || e) &&
|
|
T.synched("relativexy", function () {
|
|
var e = T.lastdeltay + T.newscrolly;
|
|
T.lastdeltay = 0;
|
|
var o = T.lastdeltax + T.newscrollx;
|
|
(T.lastdeltax = 0), T.rail.drag || T.doScrollPos(o, e);
|
|
});
|
|
}
|
|
function k(e, o, t) {
|
|
var r, i;
|
|
return (
|
|
!(t || !q) ||
|
|
(0 === e.deltaMode
|
|
? ((r = (-e.deltaX * (M.mousescrollstep / 54)) | 0),
|
|
(i = (-e.deltaY * (M.mousescrollstep / 54)) | 0))
|
|
: 1 === e.deltaMode &&
|
|
((r =
|
|
((-e.deltaX * M.mousescrollstep * 50) / 80) | 0),
|
|
(i =
|
|
((-e.deltaY * M.mousescrollstep * 50) / 80) | 0)),
|
|
o &&
|
|
M.oneaxismousemode &&
|
|
0 === r &&
|
|
i &&
|
|
((r = i),
|
|
(i = 0),
|
|
t &&
|
|
(r < 0
|
|
? T.getScrollLeft() >= T.page.maxw
|
|
: T.getScrollLeft() <= 0) &&
|
|
((i = r), (r = 0))),
|
|
T.isrtlmode && (r = -r),
|
|
z(r, i, t, !0)
|
|
? void (t && (q = !0))
|
|
: ((q = !1),
|
|
e.stopImmediatePropagation(),
|
|
e.preventDefault()))
|
|
);
|
|
}
|
|
var T = this;
|
|
(this.version = "3.7.6"), (this.name = "nicescroll"), (this.me = p);
|
|
var E = n("body"),
|
|
M = (this.opt = { doc: E, win: !1 });
|
|
if ((n.extend(M, g), (M.snapbackspeed = 80), e))
|
|
for (var L in M) void 0 !== e[L] && (M[L] = e[L]);
|
|
if (
|
|
(M.disablemutationobserver && (m = !1),
|
|
(this.doc = M.doc),
|
|
(this.iddoc =
|
|
this.doc && this.doc[0] ? this.doc[0].id || "" : ""),
|
|
(this.ispage = /^BODY|HTML/.test(
|
|
M.win ? M.win[0].nodeName : this.doc[0].nodeName
|
|
)),
|
|
(this.haswrapper = !1 !== M.win),
|
|
(this.win = M.win || (this.ispage ? c : this.doc)),
|
|
(this.docscroll =
|
|
this.ispage && !this.haswrapper ? c : this.win),
|
|
(this.body = E),
|
|
(this.viewport = !1),
|
|
(this.isfixed = !1),
|
|
(this.iframe = !1),
|
|
(this.isiframe =
|
|
"IFRAME" == this.doc[0].nodeName &&
|
|
"IFRAME" == this.win[0].nodeName),
|
|
(this.istextarea = "TEXTAREA" == this.win[0].nodeName),
|
|
(this.forcescreen = !1),
|
|
(this.canshowonmouseevent = "scroll" != M.autohidemode),
|
|
(this.onmousedown = !1),
|
|
(this.onmouseup = !1),
|
|
(this.onmousemove = !1),
|
|
(this.onmousewheel = !1),
|
|
(this.onkeypress = !1),
|
|
(this.ongesturezoom = !1),
|
|
(this.onclick = !1),
|
|
(this.onscrollstart = !1),
|
|
(this.onscrollend = !1),
|
|
(this.onscrollcancel = !1),
|
|
(this.onzoomin = !1),
|
|
(this.onzoomout = !1),
|
|
(this.view = !1),
|
|
(this.page = !1),
|
|
(this.scroll = { x: 0, y: 0 }),
|
|
(this.scrollratio = { x: 0, y: 0 }),
|
|
(this.cursorheight = 20),
|
|
(this.scrollvaluemax = 0),
|
|
"auto" == M.rtlmode)
|
|
) {
|
|
var C = this.win[0] == a ? this.body : this.win,
|
|
N =
|
|
C.css("writing-mode") ||
|
|
C.css("-webkit-writing-mode") ||
|
|
C.css("-ms-writing-mode") ||
|
|
C.css("-moz-writing-mode");
|
|
"horizontal-tb" == N || "lr-tb" == N || "" === N
|
|
? ((this.isrtlmode = "rtl" == C.css("direction")),
|
|
(this.isvertical = !1))
|
|
: ((this.isrtlmode =
|
|
"vertical-rl" == N ||
|
|
"tb" == N ||
|
|
"tb-rl" == N ||
|
|
"rl-tb" == N),
|
|
(this.isvertical =
|
|
"vertical-rl" == N || "tb" == N || "tb-rl" == N));
|
|
} else (this.isrtlmode = !0 === M.rtlmode), (this.isvertical = !1);
|
|
if (
|
|
((this.scrollrunning = !1),
|
|
(this.scrollmom = !1),
|
|
(this.observer = !1),
|
|
(this.observerremover = !1),
|
|
(this.observerbody = !1),
|
|
!1 !== M.scrollbarid)
|
|
)
|
|
this.id = M.scrollbarid;
|
|
else
|
|
do {
|
|
this.id = "ascrail" + i++;
|
|
} while (l.getElementById(this.id));
|
|
(this.rail = !1),
|
|
(this.cursor = !1),
|
|
(this.cursorfreezed = !1),
|
|
(this.selectiondrag = !1),
|
|
(this.zoom = !1),
|
|
(this.zoomactive = !1),
|
|
(this.hasfocus = !1),
|
|
(this.hasmousefocus = !1),
|
|
(this.railslocked = !1),
|
|
(this.locked = !1),
|
|
(this.hidden = !1),
|
|
(this.cursoractive = !0),
|
|
(this.wheelprevented = !1),
|
|
(this.overflowx = M.overflowx),
|
|
(this.overflowy = M.overflowy),
|
|
(this.nativescrollingarea = !1),
|
|
(this.checkarea = 0),
|
|
(this.events = []),
|
|
(this.saved = {}),
|
|
(this.delaylist = {}),
|
|
(this.synclist = {}),
|
|
(this.lastdeltax = 0),
|
|
(this.lastdeltay = 0),
|
|
(this.detected = w());
|
|
var P = n.extend({}, this.detected);
|
|
(this.canhwscroll = P.hastransform && M.hwacceleration),
|
|
(this.ishwscroll = this.canhwscroll && T.haswrapper),
|
|
this.isrtlmode
|
|
? this.isvertical
|
|
? (this.hasreversehr = !(
|
|
P.iswebkit ||
|
|
P.isie ||
|
|
P.isie11
|
|
))
|
|
: (this.hasreversehr = !(
|
|
P.iswebkit ||
|
|
(P.isie && !P.isie10 && !P.isie11)
|
|
))
|
|
: (this.hasreversehr = !1),
|
|
(this.istouchcapable = !1),
|
|
P.cantouch || (!P.hasw3ctouch && !P.hasmstouch)
|
|
? !P.cantouch ||
|
|
P.isios ||
|
|
P.isandroid ||
|
|
(!P.iswebkit && !P.ismozilla) ||
|
|
(this.istouchcapable = !0)
|
|
: (this.istouchcapable = !0),
|
|
M.enablemouselockapi ||
|
|
((P.hasmousecapture = !1), (P.haspointerlock = !1)),
|
|
(this.debounced = function (e, o, t) {
|
|
T &&
|
|
(T.delaylist[e] ||
|
|
!1 ||
|
|
((T.delaylist[e] = {
|
|
h: u(function () {
|
|
T.delaylist[e].fn.call(T),
|
|
(T.delaylist[e] = !1);
|
|
}, t),
|
|
}),
|
|
o.call(T)),
|
|
(T.delaylist[e].fn = o));
|
|
}),
|
|
(this.synched = function (e, o) {
|
|
T.synclist[e]
|
|
? (T.synclist[e] = o)
|
|
: ((T.synclist[e] = o),
|
|
u(function () {
|
|
T &&
|
|
(T.synclist[e] && T.synclist[e].call(T),
|
|
(T.synclist[e] = null));
|
|
}));
|
|
}),
|
|
(this.unsynched = function (e) {
|
|
T.synclist[e] && (T.synclist[e] = !1);
|
|
}),
|
|
(this.css = function (e, o) {
|
|
for (var t in o)
|
|
T.saved.css.push([e, t, e.css(t)]), e.css(t, o[t]);
|
|
}),
|
|
(this.scrollTop = function (e) {
|
|
return void 0 === e ? T.getScrollTop() : T.setScrollTop(e);
|
|
}),
|
|
(this.scrollLeft = function (e) {
|
|
return void 0 === e
|
|
? T.getScrollLeft()
|
|
: T.setScrollLeft(e);
|
|
});
|
|
var R = function (e, o, t, r, i, s, n) {
|
|
(this.st = e),
|
|
(this.ed = o),
|
|
(this.spd = t),
|
|
(this.p1 = r || 0),
|
|
(this.p2 = i || 1),
|
|
(this.p3 = s || 0),
|
|
(this.p4 = n || 1),
|
|
(this.ts = f()),
|
|
(this.df = o - e);
|
|
};
|
|
if (
|
|
((R.prototype = {
|
|
B2: function (e) {
|
|
return 3 * (1 - e) * (1 - e) * e;
|
|
},
|
|
B3: function (e) {
|
|
return 3 * (1 - e) * e * e;
|
|
},
|
|
B4: function (e) {
|
|
return e * e * e;
|
|
},
|
|
getPos: function () {
|
|
return (f() - this.ts) / this.spd;
|
|
},
|
|
getNow: function () {
|
|
var e = (f() - this.ts) / this.spd,
|
|
o = this.B2(e) + this.B3(e) + this.B4(e);
|
|
return e >= 1 ? this.ed : (this.st + this.df * o) | 0;
|
|
},
|
|
update: function (e, o) {
|
|
return (
|
|
(this.st = this.getNow()),
|
|
(this.ed = e),
|
|
(this.spd = o),
|
|
(this.ts = f()),
|
|
(this.df = this.ed - this.st),
|
|
this
|
|
);
|
|
},
|
|
}),
|
|
this.ishwscroll)
|
|
) {
|
|
(this.doc.translate = { x: 0, y: 0, tx: "0px", ty: "0px" }),
|
|
P.hastranslate3d &&
|
|
P.isios &&
|
|
this.doc.css("-webkit-backface-visibility", "hidden"),
|
|
(this.getScrollTop = function (e) {
|
|
if (!e) {
|
|
var o = v();
|
|
if (o) return 16 == o.length ? -o[13] : -o[5];
|
|
if (T.timerscroll && T.timerscroll.bz)
|
|
return T.timerscroll.bz.getNow();
|
|
}
|
|
return T.doc.translate.y;
|
|
}),
|
|
(this.getScrollLeft = function (e) {
|
|
if (!e) {
|
|
var o = v();
|
|
if (o) return 16 == o.length ? -o[12] : -o[4];
|
|
if (T.timerscroll && T.timerscroll.bh)
|
|
return T.timerscroll.bh.getNow();
|
|
}
|
|
return T.doc.translate.x;
|
|
}),
|
|
(this.notifyScrollEvent = function (e) {
|
|
var o = l.createEvent("UIEvents");
|
|
o.initUIEvent("scroll", !1, !1, a, 1),
|
|
(o.niceevent = !0),
|
|
e.dispatchEvent(o);
|
|
});
|
|
var _ = this.isrtlmode ? 1 : -1;
|
|
P.hastranslate3d && M.enabletranslate3d
|
|
? ((this.setScrollTop = function (e, o) {
|
|
(T.doc.translate.y = e),
|
|
(T.doc.translate.ty = -1 * e + "px"),
|
|
T.doc.css(
|
|
P.trstyle,
|
|
"translate3d(" +
|
|
T.doc.translate.tx +
|
|
"," +
|
|
T.doc.translate.ty +
|
|
",0)"
|
|
),
|
|
o || T.notifyScrollEvent(T.win[0]);
|
|
}),
|
|
(this.setScrollLeft = function (e, o) {
|
|
(T.doc.translate.x = e),
|
|
(T.doc.translate.tx = e * _ + "px"),
|
|
T.doc.css(
|
|
P.trstyle,
|
|
"translate3d(" +
|
|
T.doc.translate.tx +
|
|
"," +
|
|
T.doc.translate.ty +
|
|
",0)"
|
|
),
|
|
o || T.notifyScrollEvent(T.win[0]);
|
|
}))
|
|
: ((this.setScrollTop = function (e, o) {
|
|
(T.doc.translate.y = e),
|
|
(T.doc.translate.ty = -1 * e + "px"),
|
|
T.doc.css(
|
|
P.trstyle,
|
|
"translate(" +
|
|
T.doc.translate.tx +
|
|
"," +
|
|
T.doc.translate.ty +
|
|
")"
|
|
),
|
|
o || T.notifyScrollEvent(T.win[0]);
|
|
}),
|
|
(this.setScrollLeft = function (e, o) {
|
|
(T.doc.translate.x = e),
|
|
(T.doc.translate.tx = e * _ + "px"),
|
|
T.doc.css(
|
|
P.trstyle,
|
|
"translate(" +
|
|
T.doc.translate.tx +
|
|
"," +
|
|
T.doc.translate.ty +
|
|
")"
|
|
),
|
|
o || T.notifyScrollEvent(T.win[0]);
|
|
}));
|
|
} else
|
|
(this.getScrollTop = function () {
|
|
return T.docscroll.scrollTop();
|
|
}),
|
|
(this.setScrollTop = function (e) {
|
|
T.docscroll.scrollTop(e);
|
|
}),
|
|
(this.getScrollLeft = function () {
|
|
return T.hasreversehr
|
|
? T.detected.ismozilla
|
|
? T.page.maxw -
|
|
Math.abs(T.docscroll.scrollLeft())
|
|
: T.page.maxw - T.docscroll.scrollLeft()
|
|
: T.docscroll.scrollLeft();
|
|
}),
|
|
(this.setScrollLeft = function (e) {
|
|
return setTimeout(function () {
|
|
if (T)
|
|
return (
|
|
T.hasreversehr &&
|
|
(e = T.detected.ismozilla
|
|
? -(T.page.maxw - e)
|
|
: T.page.maxw - e),
|
|
T.docscroll.scrollLeft(e)
|
|
);
|
|
}, 1);
|
|
});
|
|
(this.getTarget = function (e) {
|
|
return (
|
|
!!e &&
|
|
(e.target ? e.target : !!e.srcElement && e.srcElement)
|
|
);
|
|
}),
|
|
(this.hasParent = function (e, o) {
|
|
if (!e) return !1;
|
|
for (
|
|
var t = e.target || e.srcElement || e || !1;
|
|
t && t.id != o;
|
|
|
|
)
|
|
t = t.parentNode || !1;
|
|
return !1 !== t;
|
|
});
|
|
var I = { thin: 1, medium: 3, thick: 5 };
|
|
(this.getDocumentScrollOffset = function () {
|
|
return {
|
|
top: a.pageYOffset || l.documentElement.scrollTop,
|
|
left: a.pageXOffset || l.documentElement.scrollLeft,
|
|
};
|
|
}),
|
|
(this.getOffset = function () {
|
|
if (T.isfixed) {
|
|
var e = T.win.offset(),
|
|
o = T.getDocumentScrollOffset();
|
|
return (e.top -= o.top), (e.left -= o.left), e;
|
|
}
|
|
var t = T.win.offset();
|
|
if (!T.viewport) return t;
|
|
var r = T.viewport.offset();
|
|
return { top: t.top - r.top, left: t.left - r.left };
|
|
}),
|
|
(this.updateScrollBar = function (e) {
|
|
var o, t;
|
|
if (T.ishwscroll)
|
|
T.rail.css({
|
|
height:
|
|
T.win.innerHeight() -
|
|
(M.railpadding.top + M.railpadding.bottom),
|
|
}),
|
|
T.railh &&
|
|
T.railh.css({
|
|
width:
|
|
T.win.innerWidth() -
|
|
(M.railpadding.left +
|
|
M.railpadding.right),
|
|
});
|
|
else {
|
|
var r = T.getOffset();
|
|
if (
|
|
((o = {
|
|
top: r.top,
|
|
left:
|
|
r.left -
|
|
(M.railpadding.left + M.railpadding.right),
|
|
}),
|
|
(o.top += x(T.win, "border-top-width", !0)),
|
|
(o.left += T.rail.align
|
|
? T.win.outerWidth() -
|
|
x(T.win, "border-right-width") -
|
|
T.rail.width
|
|
: x(T.win, "border-left-width")),
|
|
(t = M.railoffset) &&
|
|
(t.top && (o.top += t.top),
|
|
t.left && (o.left += t.left)),
|
|
T.railslocked ||
|
|
T.rail.css({
|
|
top: o.top,
|
|
left: o.left,
|
|
height:
|
|
(e ? e.h : T.win.innerHeight()) -
|
|
(M.railpadding.top +
|
|
M.railpadding.bottom),
|
|
}),
|
|
T.zoom &&
|
|
T.zoom.css({
|
|
top: o.top + 1,
|
|
left:
|
|
1 == T.rail.align
|
|
? o.left - 20
|
|
: o.left + T.rail.width + 4,
|
|
}),
|
|
T.railh && !T.railslocked)
|
|
) {
|
|
(o = { top: r.top, left: r.left }),
|
|
(t = M.railhoffset) &&
|
|
(t.top && (o.top += t.top),
|
|
t.left && (o.left += t.left));
|
|
var i = T.railh.align
|
|
? o.top +
|
|
x(T.win, "border-top-width", !0) +
|
|
T.win.innerHeight() -
|
|
T.railh.height
|
|
: o.top + x(T.win, "border-top-width", !0),
|
|
s = o.left + x(T.win, "border-left-width");
|
|
T.railh.css({
|
|
top:
|
|
i -
|
|
(M.railpadding.top + M.railpadding.bottom),
|
|
left: s,
|
|
width: T.railh.width,
|
|
});
|
|
}
|
|
}
|
|
}),
|
|
(this.doRailClick = function (e, o, t) {
|
|
var r, i, s, n;
|
|
T.railslocked ||
|
|
(T.cancelEvent(e),
|
|
"pageY" in e ||
|
|
((e.pageX =
|
|
e.clientX + l.documentElement.scrollLeft),
|
|
(e.pageY =
|
|
e.clientY + l.documentElement.scrollTop)),
|
|
o
|
|
? ((r = t ? T.doScrollLeft : T.doScrollTop),
|
|
(s = t
|
|
? (e.pageX -
|
|
T.railh.offset().left -
|
|
T.cursorwidth / 2) *
|
|
T.scrollratio.x
|
|
: (e.pageY -
|
|
T.rail.offset().top -
|
|
T.cursorheight / 2) *
|
|
T.scrollratio.y),
|
|
T.unsynched("relativexy"),
|
|
r(0 | s))
|
|
: ((r = t ? T.doScrollLeftBy : T.doScrollBy),
|
|
(s = t ? T.scroll.x : T.scroll.y),
|
|
(n = t
|
|
? e.pageX - T.railh.offset().left
|
|
: e.pageY - T.rail.offset().top),
|
|
(i = t ? T.view.w : T.view.h),
|
|
r(s >= n ? i : -i)));
|
|
}),
|
|
(T.newscrolly = T.newscrollx = 0),
|
|
(T.hasanimationframe = "requestAnimationFrame" in a),
|
|
(T.hascancelanimationframe = "cancelAnimationFrame" in a),
|
|
(T.hasborderbox = !1),
|
|
(this.init = function () {
|
|
if (((T.saved.css = []), P.isoperamini)) return !0;
|
|
if (P.isandroid && !("hidden" in l)) return !0;
|
|
(M.emulatetouch = M.emulatetouch || M.touchbehavior),
|
|
(T.hasborderbox =
|
|
a.getComputedStyle &&
|
|
"border-box" ===
|
|
a.getComputedStyle(l.body)["box-sizing"]);
|
|
var e = { "overflow-y": "hidden" };
|
|
if (
|
|
((P.isie11 || P.isie10) &&
|
|
(e["-ms-overflow-style"] = "none"),
|
|
T.ishwscroll &&
|
|
(this.doc.css(
|
|
P.transitionstyle,
|
|
P.prefixstyle + "transform 0ms ease-out"
|
|
),
|
|
P.transitionend &&
|
|
T.bind(
|
|
T.doc,
|
|
P.transitionend,
|
|
T.onScrollTransitionEnd,
|
|
!1
|
|
)),
|
|
(T.zindex = "auto"),
|
|
T.ispage || "auto" != M.zindex
|
|
? (T.zindex = M.zindex)
|
|
: (T.zindex = b() || "auto"),
|
|
!T.ispage &&
|
|
"auto" != T.zindex &&
|
|
T.zindex > s &&
|
|
(s = T.zindex),
|
|
T.isie &&
|
|
0 === T.zindex &&
|
|
"auto" == M.zindex &&
|
|
(T.zindex = "auto"),
|
|
!T.ispage || !P.isieold)
|
|
) {
|
|
var i = T.docscroll;
|
|
T.ispage && (i = T.haswrapper ? T.win : T.doc),
|
|
T.css(i, e),
|
|
T.ispage &&
|
|
(P.isie11 || P.isie) &&
|
|
T.css(n("html"), e),
|
|
!P.isios ||
|
|
T.ispage ||
|
|
T.haswrapper ||
|
|
T.css(E, {
|
|
"-webkit-overflow-scrolling": "touch",
|
|
});
|
|
var d = n(l.createElement("div"));
|
|
d.css({
|
|
position: "relative",
|
|
top: 0,
|
|
float: "right",
|
|
width: M.cursorwidth,
|
|
height: 0,
|
|
"background-color": M.cursorcolor,
|
|
border: M.cursorborder,
|
|
"background-clip": "padding-box",
|
|
"-webkit-border-radius": M.cursorborderradius,
|
|
"-moz-border-radius": M.cursorborderradius,
|
|
"border-radius": M.cursorborderradius,
|
|
}),
|
|
d.addClass("nicescroll-cursors"),
|
|
(T.cursor = d);
|
|
var u = n(l.createElement("div"));
|
|
u.attr("id", T.id),
|
|
u.addClass("nicescroll-rails nicescroll-rails-vr");
|
|
var h,
|
|
p,
|
|
f = ["left", "right", "top", "bottom"];
|
|
for (var g in f)
|
|
(p = f[g]),
|
|
(h = M.railpadding[p] || 0) &&
|
|
u.css("padding-" + p, h + "px");
|
|
u.append(d),
|
|
(u.width = Math.max(
|
|
parseFloat(M.cursorwidth),
|
|
d.outerWidth()
|
|
)),
|
|
u.css({
|
|
width: u.width + "px",
|
|
zIndex: T.zindex,
|
|
background: M.background,
|
|
cursor: "default",
|
|
}),
|
|
(u.visibility = !0),
|
|
(u.scrollable = !0),
|
|
(u.align = "left" == M.railalign ? 0 : 1),
|
|
(T.rail = u),
|
|
(T.rail.drag = !1);
|
|
var v = !1;
|
|
!M.boxzoom ||
|
|
T.ispage ||
|
|
P.isieold ||
|
|
((v = l.createElement("div")),
|
|
T.bind(v, "click", T.doZoom),
|
|
T.bind(v, "mouseenter", function () {
|
|
T.zoom.css("opacity", M.cursoropacitymax);
|
|
}),
|
|
T.bind(v, "mouseleave", function () {
|
|
T.zoom.css("opacity", M.cursoropacitymin);
|
|
}),
|
|
(T.zoom = n(v)),
|
|
T.zoom.css({
|
|
cursor: "pointer",
|
|
zIndex: T.zindex,
|
|
backgroundImage:
|
|
"url(" + M.scriptpath + "zoomico.png)",
|
|
height: 18,
|
|
width: 18,
|
|
backgroundPosition: "0 0",
|
|
}),
|
|
M.dblclickzoom &&
|
|
T.bind(T.win, "dblclick", T.doZoom),
|
|
P.cantouch &&
|
|
M.gesturezoom &&
|
|
((T.ongesturezoom = function (e) {
|
|
return (
|
|
e.scale > 1.5 && T.doZoomIn(e),
|
|
e.scale < 0.8 && T.doZoomOut(e),
|
|
T.cancelEvent(e)
|
|
);
|
|
}),
|
|
T.bind(T.win, "gestureend", T.ongesturezoom))),
|
|
(T.railh = !1);
|
|
var w;
|
|
if (
|
|
(M.horizrailenabled &&
|
|
(T.css(i, { overflowX: "hidden" }),
|
|
(d = n(l.createElement("div"))).css({
|
|
position: "absolute",
|
|
top: 0,
|
|
height: M.cursorwidth,
|
|
width: 0,
|
|
backgroundColor: M.cursorcolor,
|
|
border: M.cursorborder,
|
|
backgroundClip: "padding-box",
|
|
"-webkit-border-radius":
|
|
M.cursorborderradius,
|
|
"-moz-border-radius": M.cursorborderradius,
|
|
"border-radius": M.cursorborderradius,
|
|
}),
|
|
P.isieold && d.css("overflow", "hidden"),
|
|
d.addClass("nicescroll-cursors"),
|
|
(T.cursorh = d),
|
|
(w = n(l.createElement("div"))).attr(
|
|
"id",
|
|
T.id + "-hr"
|
|
),
|
|
w.addClass(
|
|
"nicescroll-rails nicescroll-rails-hr"
|
|
),
|
|
(w.height = Math.max(
|
|
parseFloat(M.cursorwidth),
|
|
d.outerHeight()
|
|
)),
|
|
w.css({
|
|
height: w.height + "px",
|
|
zIndex: T.zindex,
|
|
background: M.background,
|
|
}),
|
|
w.append(d),
|
|
(w.visibility = !0),
|
|
(w.scrollable = !0),
|
|
(w.align = "top" == M.railvalign ? 0 : 1),
|
|
(T.railh = w),
|
|
(T.railh.drag = !1)),
|
|
T.ispage)
|
|
)
|
|
u.css({
|
|
position: "fixed",
|
|
top: 0,
|
|
height: "100%",
|
|
}),
|
|
u.css(u.align ? { right: 0 } : { left: 0 }),
|
|
T.body.append(u),
|
|
T.railh &&
|
|
(w.css({
|
|
position: "fixed",
|
|
left: 0,
|
|
width: "100%",
|
|
}),
|
|
w.css(w.align ? { bottom: 0 } : { top: 0 }),
|
|
T.body.append(w));
|
|
else {
|
|
if (T.ishwscroll) {
|
|
"static" == T.win.css("position") &&
|
|
T.css(T.win, { position: "relative" });
|
|
var x =
|
|
"HTML" == T.win[0].nodeName
|
|
? T.body
|
|
: T.win;
|
|
n(x).scrollTop(0).scrollLeft(0),
|
|
T.zoom &&
|
|
(T.zoom.css({
|
|
position: "absolute",
|
|
top: 1,
|
|
right: 0,
|
|
"margin-right": u.width + 4,
|
|
}),
|
|
x.append(T.zoom)),
|
|
u.css({ position: "absolute", top: 0 }),
|
|
u.css(u.align ? { right: 0 } : { left: 0 }),
|
|
x.append(u),
|
|
w &&
|
|
(w.css({
|
|
position: "absolute",
|
|
left: 0,
|
|
bottom: 0,
|
|
}),
|
|
w.css(
|
|
w.align ? { bottom: 0 } : { top: 0 }
|
|
),
|
|
x.append(w));
|
|
} else {
|
|
T.isfixed = "fixed" == T.win.css("position");
|
|
var S = T.isfixed ? "fixed" : "absolute";
|
|
T.isfixed ||
|
|
(T.viewport = T.getViewport(T.win[0])),
|
|
T.viewport &&
|
|
((T.body = T.viewport),
|
|
/fixed|absolute/.test(
|
|
T.viewport.css("position")
|
|
) ||
|
|
T.css(T.viewport, {
|
|
position: "relative",
|
|
})),
|
|
u.css({ position: S }),
|
|
T.zoom && T.zoom.css({ position: S }),
|
|
T.updateScrollBar(),
|
|
T.body.append(u),
|
|
T.zoom && T.body.append(T.zoom),
|
|
T.railh &&
|
|
(w.css({ position: S }),
|
|
T.body.append(w));
|
|
}
|
|
P.isios &&
|
|
T.css(T.win, {
|
|
"-webkit-tap-highlight-color":
|
|
"rgba(0,0,0,0)",
|
|
"-webkit-touch-callout": "none",
|
|
}),
|
|
M.disableoutline &&
|
|
(P.isie && T.win.attr("hideFocus", "true"),
|
|
P.iswebkit && T.win.css("outline", "none"));
|
|
}
|
|
if (
|
|
(!1 === M.autohidemode
|
|
? ((T.autohidedom = !1),
|
|
T.rail.css({ opacity: M.cursoropacitymax }),
|
|
T.railh &&
|
|
T.railh.css({
|
|
opacity: M.cursoropacitymax,
|
|
}))
|
|
: !0 === M.autohidemode ||
|
|
"leave" === M.autohidemode
|
|
? ((T.autohidedom = n().add(T.rail)),
|
|
P.isie8 &&
|
|
(T.autohidedom = T.autohidedom.add(
|
|
T.cursor
|
|
)),
|
|
T.railh &&
|
|
(T.autohidedom = T.autohidedom.add(
|
|
T.railh
|
|
)),
|
|
T.railh &&
|
|
P.isie8 &&
|
|
(T.autohidedom = T.autohidedom.add(
|
|
T.cursorh
|
|
)))
|
|
: "scroll" == M.autohidemode
|
|
? ((T.autohidedom = n().add(T.rail)),
|
|
T.railh &&
|
|
(T.autohidedom = T.autohidedom.add(
|
|
T.railh
|
|
)))
|
|
: "cursor" == M.autohidemode
|
|
? ((T.autohidedom = n().add(T.cursor)),
|
|
T.railh &&
|
|
(T.autohidedom = T.autohidedom.add(
|
|
T.cursorh
|
|
)))
|
|
: "hidden" == M.autohidemode &&
|
|
((T.autohidedom = !1),
|
|
T.hide(),
|
|
(T.railslocked = !1)),
|
|
P.cantouch ||
|
|
T.istouchcapable ||
|
|
M.emulatetouch ||
|
|
P.hasmstouch)
|
|
) {
|
|
T.scrollmom = new y(T);
|
|
(T.ontouchstart = function (e) {
|
|
if (T.locked) return !1;
|
|
if (
|
|
e.pointerType &&
|
|
("mouse" === e.pointerType ||
|
|
e.pointerType ===
|
|
e.MSPOINTER_TYPE_MOUSE)
|
|
)
|
|
return !1;
|
|
if (
|
|
((T.hasmoving = !1),
|
|
T.scrollmom.timer &&
|
|
(T.triggerScrollEnd(),
|
|
T.scrollmom.stop()),
|
|
!T.railslocked)
|
|
) {
|
|
var o = T.getTarget(e);
|
|
if (
|
|
o &&
|
|
/INPUT/i.test(o.nodeName) &&
|
|
/range/i.test(o.type)
|
|
)
|
|
return T.stopPropagation(e);
|
|
var t = "mousedown" === e.type;
|
|
if (
|
|
(!("clientX" in e) &&
|
|
"changedTouches" in e &&
|
|
((e.clientX =
|
|
e.changedTouches[0].clientX),
|
|
(e.clientY =
|
|
e.changedTouches[0].clientY)),
|
|
T.forcescreen)
|
|
) {
|
|
var r = e;
|
|
((e = {
|
|
original: e.original
|
|
? e.original
|
|
: e,
|
|
}).clientX = r.screenX),
|
|
(e.clientY = r.screenY);
|
|
}
|
|
if (
|
|
((T.rail.drag = {
|
|
x: e.clientX,
|
|
y: e.clientY,
|
|
sx: T.scroll.x,
|
|
sy: T.scroll.y,
|
|
st: T.getScrollTop(),
|
|
sl: T.getScrollLeft(),
|
|
pt: 2,
|
|
dl: !1,
|
|
tg: o,
|
|
}),
|
|
T.ispage || !M.directionlockdeadzone)
|
|
)
|
|
T.rail.drag.dl = "f";
|
|
else {
|
|
var i = { w: c.width(), h: c.height() },
|
|
s = T.getContentSize(),
|
|
l = s.h - i.h,
|
|
a = s.w - i.w;
|
|
T.rail.scrollable && !T.railh.scrollable
|
|
? (T.rail.drag.ck = l > 0 && "v")
|
|
: !T.rail.scrollable &&
|
|
T.railh.scrollable
|
|
? (T.rail.drag.ck = a > 0 && "h")
|
|
: (T.rail.drag.ck = !1);
|
|
}
|
|
if (
|
|
M.emulatetouch &&
|
|
T.isiframe &&
|
|
P.isie
|
|
) {
|
|
var d = T.win.position();
|
|
(T.rail.drag.x += d.left),
|
|
(T.rail.drag.y += d.top);
|
|
}
|
|
if (
|
|
((T.hasmoving = !1),
|
|
(T.lastmouseup = !1),
|
|
T.scrollmom.reset(e.clientX, e.clientY),
|
|
o && t)
|
|
) {
|
|
if (
|
|
!/INPUT|SELECT|BUTTON|TEXTAREA/i.test(
|
|
o.nodeName
|
|
)
|
|
)
|
|
return (
|
|
P.hasmousecapture &&
|
|
o.setCapture(),
|
|
M.emulatetouch
|
|
? (o.onclick &&
|
|
!o._onclick &&
|
|
((o._onclick =
|
|
o.onclick),
|
|
(o.onclick =
|
|
function (e) {
|
|
if (
|
|
T.hasmoving
|
|
)
|
|
return !1;
|
|
o._onclick.call(
|
|
this,
|
|
e
|
|
);
|
|
})),
|
|
T.cancelEvent(e))
|
|
: T.stopPropagation(e)
|
|
);
|
|
/SUBMIT|CANCEL|BUTTON/i.test(
|
|
n(o).attr("type")
|
|
) &&
|
|
(T.preventclick = {
|
|
tg: o,
|
|
click: !1,
|
|
});
|
|
}
|
|
}
|
|
}),
|
|
(T.ontouchend = function (e) {
|
|
if (!T.rail.drag) return !0;
|
|
if (2 == T.rail.drag.pt) {
|
|
if (
|
|
e.pointerType &&
|
|
("mouse" === e.pointerType ||
|
|
e.pointerType ===
|
|
e.MSPOINTER_TYPE_MOUSE)
|
|
)
|
|
return !1;
|
|
T.rail.drag = !1;
|
|
var o = "mouseup" === e.type;
|
|
if (
|
|
T.hasmoving &&
|
|
(T.scrollmom.doMomentum(),
|
|
(T.lastmouseup = !0),
|
|
T.hideCursor(),
|
|
P.hasmousecapture &&
|
|
l.releaseCapture(),
|
|
o)
|
|
)
|
|
return T.cancelEvent(e);
|
|
} else if (1 == T.rail.drag.pt)
|
|
return T.onmouseup(e);
|
|
});
|
|
var z =
|
|
M.emulatetouch &&
|
|
T.isiframe &&
|
|
!P.hasmousecapture,
|
|
k = (0.3 * M.directionlockdeadzone) | 0;
|
|
(T.ontouchmove = function (e, o) {
|
|
if (!T.rail.drag) return !0;
|
|
if (
|
|
e.targetTouches &&
|
|
M.preventmultitouchscrolling &&
|
|
e.targetTouches.length > 1
|
|
)
|
|
return !0;
|
|
if (
|
|
e.pointerType &&
|
|
("mouse" === e.pointerType ||
|
|
e.pointerType ===
|
|
e.MSPOINTER_TYPE_MOUSE)
|
|
)
|
|
return !0;
|
|
if (2 == T.rail.drag.pt) {
|
|
"changedTouches" in e &&
|
|
((e.clientX =
|
|
e.changedTouches[0].clientX),
|
|
(e.clientY =
|
|
e.changedTouches[0].clientY));
|
|
var t, r;
|
|
if (((r = t = 0), z && !o)) {
|
|
var i = T.win.position();
|
|
(r = -i.left), (t = -i.top);
|
|
}
|
|
var s = e.clientY + t,
|
|
n = s - T.rail.drag.y,
|
|
a = e.clientX + r,
|
|
c = a - T.rail.drag.x,
|
|
d = T.rail.drag.st - n;
|
|
if (T.ishwscroll && M.bouncescroll)
|
|
d < 0
|
|
? (d = Math.round(d / 2))
|
|
: d > T.page.maxh &&
|
|
(d =
|
|
T.page.maxh +
|
|
Math.round(
|
|
(d - T.page.maxh) / 2
|
|
));
|
|
else if (
|
|
(d < 0
|
|
? ((d = 0), (s = 0))
|
|
: d > T.page.maxh &&
|
|
((d = T.page.maxh), (s = 0)),
|
|
0 === s && !T.hasmoving)
|
|
)
|
|
return (
|
|
T.ispage || (T.rail.drag = !1), !0
|
|
);
|
|
var u = T.getScrollLeft();
|
|
if (
|
|
(T.railh &&
|
|
T.railh.scrollable &&
|
|
((u = T.isrtlmode
|
|
? c - T.rail.drag.sl
|
|
: T.rail.drag.sl - c),
|
|
T.ishwscroll && M.bouncescroll
|
|
? u < 0
|
|
? (u = Math.round(u / 2))
|
|
: u > T.page.maxw &&
|
|
(u =
|
|
T.page.maxw +
|
|
Math.round(
|
|
(u -
|
|
T.page.maxw) /
|
|
2
|
|
))
|
|
: (u < 0 && ((u = 0), (a = 0)),
|
|
u > T.page.maxw &&
|
|
((u = T.page.maxw),
|
|
(a = 0)))),
|
|
!T.hasmoving)
|
|
) {
|
|
if (
|
|
T.rail.drag.y === e.clientY &&
|
|
T.rail.drag.x === e.clientX
|
|
)
|
|
return T.cancelEvent(e);
|
|
var h = Math.abs(n),
|
|
p = Math.abs(c),
|
|
m = M.directionlockdeadzone;
|
|
if (
|
|
(T.rail.drag.ck
|
|
? "v" == T.rail.drag.ck
|
|
? p > m && h <= k
|
|
? (T.rail.drag = !1)
|
|
: h > m &&
|
|
(T.rail.drag.dl = "v")
|
|
: "h" == T.rail.drag.ck &&
|
|
(h > m && p <= k
|
|
? (T.rail.drag = !1)
|
|
: p > m &&
|
|
(T.rail.drag.dl =
|
|
"h"))
|
|
: h > m && p > m
|
|
? (T.rail.drag.dl = "f")
|
|
: h > m
|
|
? (T.rail.drag.dl =
|
|
p > k ? "f" : "v")
|
|
: p > m &&
|
|
(T.rail.drag.dl =
|
|
h > k ? "f" : "h"),
|
|
!T.rail.drag.dl)
|
|
)
|
|
return T.cancelEvent(e);
|
|
T.triggerScrollStart(
|
|
e.clientX,
|
|
e.clientY,
|
|
0,
|
|
0,
|
|
0
|
|
),
|
|
(T.hasmoving = !0);
|
|
}
|
|
return (
|
|
T.preventclick &&
|
|
!T.preventclick.click &&
|
|
((T.preventclick.click =
|
|
T.preventclick.tg.onclick ||
|
|
!1),
|
|
(T.preventclick.tg.onclick =
|
|
T.onpreventclick)),
|
|
T.rail.drag.dl &&
|
|
("v" == T.rail.drag.dl
|
|
? (u = T.rail.drag.sl)
|
|
: "h" == T.rail.drag.dl &&
|
|
(d = T.rail.drag.st)),
|
|
T.synched("touchmove", function () {
|
|
T.rail.drag &&
|
|
2 == T.rail.drag.pt &&
|
|
(T.prepareTransition &&
|
|
T.resetTransition(),
|
|
T.rail.scrollable &&
|
|
T.setScrollTop(d),
|
|
T.scrollmom.update(a, s),
|
|
T.railh && T.railh.scrollable
|
|
? (T.setScrollLeft(u),
|
|
T.showCursor(d, u))
|
|
: T.showCursor(d),
|
|
P.isie10 &&
|
|
l.selection.clear());
|
|
}),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
return 1 == T.rail.drag.pt
|
|
? T.onmousemove(e)
|
|
: void 0;
|
|
}),
|
|
(T.ontouchstartCursor = function (e, o) {
|
|
if (!T.rail.drag || 3 == T.rail.drag.pt) {
|
|
if (T.locked) return T.cancelEvent(e);
|
|
T.cancelScroll(),
|
|
(T.rail.drag = {
|
|
x: e.touches[0].clientX,
|
|
y: e.touches[0].clientY,
|
|
sx: T.scroll.x,
|
|
sy: T.scroll.y,
|
|
pt: 3,
|
|
hr: !!o,
|
|
});
|
|
var t = T.getTarget(e);
|
|
return (
|
|
!T.ispage &&
|
|
P.hasmousecapture &&
|
|
t.setCapture(),
|
|
T.isiframe &&
|
|
!P.hasmousecapture &&
|
|
((T.saved.csspointerevents =
|
|
T.doc.css(
|
|
"pointer-events"
|
|
)),
|
|
T.css(T.doc, {
|
|
"pointer-events": "none",
|
|
})),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
}),
|
|
(T.ontouchendCursor = function (e) {
|
|
if (T.rail.drag) {
|
|
if (
|
|
(P.hasmousecapture &&
|
|
l.releaseCapture(),
|
|
T.isiframe &&
|
|
!P.hasmousecapture &&
|
|
T.doc.css(
|
|
"pointer-events",
|
|
T.saved.csspointerevents
|
|
),
|
|
3 != T.rail.drag.pt)
|
|
)
|
|
return;
|
|
return (
|
|
(T.rail.drag = !1), T.cancelEvent(e)
|
|
);
|
|
}
|
|
}),
|
|
(T.ontouchmoveCursor = function (e) {
|
|
if (T.rail.drag) {
|
|
if (3 != T.rail.drag.pt) return;
|
|
if (
|
|
((T.cursorfreezed = !0),
|
|
T.rail.drag.hr)
|
|
) {
|
|
(T.scroll.x =
|
|
T.rail.drag.sx +
|
|
(e.touches[0].clientX -
|
|
T.rail.drag.x)),
|
|
T.scroll.x < 0 &&
|
|
(T.scroll.x = 0);
|
|
var o = T.scrollvaluemaxw;
|
|
T.scroll.x > o && (T.scroll.x = o);
|
|
} else {
|
|
(T.scroll.y =
|
|
T.rail.drag.sy +
|
|
(e.touches[0].clientY -
|
|
T.rail.drag.y)),
|
|
T.scroll.y < 0 &&
|
|
(T.scroll.y = 0);
|
|
var t = T.scrollvaluemax;
|
|
T.scroll.y > t && (T.scroll.y = t);
|
|
}
|
|
return (
|
|
T.synched("touchmove", function () {
|
|
T.rail.drag &&
|
|
3 == T.rail.drag.pt &&
|
|
(T.showCursor(),
|
|
T.rail.drag.hr
|
|
? T.doScrollLeft(
|
|
Math.round(
|
|
T.scroll.x *
|
|
T
|
|
.scrollratio
|
|
.x
|
|
),
|
|
M.cursordragspeed
|
|
)
|
|
: T.doScrollTop(
|
|
Math.round(
|
|
T.scroll.y *
|
|
T
|
|
.scrollratio
|
|
.y
|
|
),
|
|
M.cursordragspeed
|
|
));
|
|
}),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
});
|
|
}
|
|
if (
|
|
((T.onmousedown = function (e, o) {
|
|
if (!T.rail.drag || 1 == T.rail.drag.pt) {
|
|
if (T.railslocked) return T.cancelEvent(e);
|
|
T.cancelScroll(),
|
|
(T.rail.drag = {
|
|
x: e.clientX,
|
|
y: e.clientY,
|
|
sx: T.scroll.x,
|
|
sy: T.scroll.y,
|
|
pt: 1,
|
|
hr: o || !1,
|
|
});
|
|
var t = T.getTarget(e);
|
|
return (
|
|
P.hasmousecapture && t.setCapture(),
|
|
T.isiframe &&
|
|
!P.hasmousecapture &&
|
|
((T.saved.csspointerevents =
|
|
T.doc.css("pointer-events")),
|
|
T.css(T.doc, {
|
|
"pointer-events": "none",
|
|
})),
|
|
(T.hasmoving = !1),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
}),
|
|
(T.onmouseup = function (e) {
|
|
if (T.rail.drag)
|
|
return (
|
|
1 != T.rail.drag.pt ||
|
|
(P.hasmousecapture &&
|
|
l.releaseCapture(),
|
|
T.isiframe &&
|
|
!P.hasmousecapture &&
|
|
T.doc.css(
|
|
"pointer-events",
|
|
T.saved.csspointerevents
|
|
),
|
|
(T.rail.drag = !1),
|
|
(T.cursorfreezed = !1),
|
|
T.hasmoving && T.triggerScrollEnd(),
|
|
T.cancelEvent(e))
|
|
);
|
|
}),
|
|
(T.onmousemove = function (e) {
|
|
if (T.rail.drag) {
|
|
if (1 !== T.rail.drag.pt) return;
|
|
if (P.ischrome && 0 === e.which)
|
|
return T.onmouseup(e);
|
|
if (
|
|
((T.cursorfreezed = !0),
|
|
T.hasmoving ||
|
|
T.triggerScrollStart(
|
|
e.clientX,
|
|
e.clientY,
|
|
0,
|
|
0,
|
|
0
|
|
),
|
|
(T.hasmoving = !0),
|
|
T.rail.drag.hr)
|
|
) {
|
|
(T.scroll.x =
|
|
T.rail.drag.sx +
|
|
(e.clientX - T.rail.drag.x)),
|
|
T.scroll.x < 0 && (T.scroll.x = 0);
|
|
var o = T.scrollvaluemaxw;
|
|
T.scroll.x > o && (T.scroll.x = o);
|
|
} else {
|
|
(T.scroll.y =
|
|
T.rail.drag.sy +
|
|
(e.clientY - T.rail.drag.y)),
|
|
T.scroll.y < 0 && (T.scroll.y = 0);
|
|
var t = T.scrollvaluemax;
|
|
T.scroll.y > t && (T.scroll.y = t);
|
|
}
|
|
return (
|
|
T.synched("mousemove", function () {
|
|
T.cursorfreezed &&
|
|
(T.showCursor(),
|
|
T.rail.drag.hr
|
|
? T.scrollLeft(
|
|
Math.round(
|
|
T.scroll.x *
|
|
T.scrollratio
|
|
.x
|
|
)
|
|
)
|
|
: T.scrollTop(
|
|
Math.round(
|
|
T.scroll.y *
|
|
T.scrollratio
|
|
.y
|
|
)
|
|
));
|
|
}),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
T.checkarea = 0;
|
|
}),
|
|
P.cantouch || M.emulatetouch)
|
|
)
|
|
(T.onpreventclick = function (e) {
|
|
if (T.preventclick)
|
|
return (
|
|
(T.preventclick.tg.onclick =
|
|
T.preventclick.click),
|
|
(T.preventclick = !1),
|
|
T.cancelEvent(e)
|
|
);
|
|
}),
|
|
(T.onclick =
|
|
!P.isios &&
|
|
function (e) {
|
|
return (
|
|
!T.lastmouseup ||
|
|
((T.lastmouseup = !1),
|
|
T.cancelEvent(e))
|
|
);
|
|
}),
|
|
M.grabcursorenabled &&
|
|
P.cursorgrabvalue &&
|
|
(T.css(T.ispage ? T.doc : T.win, {
|
|
cursor: P.cursorgrabvalue,
|
|
}),
|
|
T.css(T.rail, {
|
|
cursor: P.cursorgrabvalue,
|
|
}));
|
|
else {
|
|
var L = function (e) {
|
|
if (T.selectiondrag) {
|
|
if (e) {
|
|
var o = T.win.outerHeight(),
|
|
t = e.pageY - T.selectiondrag.top;
|
|
t > 0 && t < o && (t = 0),
|
|
t >= o && (t -= o),
|
|
(T.selectiondrag.df = t);
|
|
}
|
|
if (0 !== T.selectiondrag.df) {
|
|
var r =
|
|
((-2 * T.selectiondrag.df) / 6) | 0;
|
|
T.doScrollBy(r),
|
|
T.debounced(
|
|
"doselectionscroll",
|
|
function () {
|
|
L();
|
|
},
|
|
50
|
|
);
|
|
}
|
|
}
|
|
};
|
|
(T.hasTextSelected =
|
|
"getSelection" in l
|
|
? function () {
|
|
return (
|
|
l.getSelection().rangeCount > 0
|
|
);
|
|
}
|
|
: "selection" in l
|
|
? function () {
|
|
return "None" != l.selection.type;
|
|
}
|
|
: function () {
|
|
return !1;
|
|
}),
|
|
(T.onselectionstart = function (e) {
|
|
T.ispage ||
|
|
(T.selectiondrag = T.win.offset());
|
|
}),
|
|
(T.onselectionend = function (e) {
|
|
T.selectiondrag = !1;
|
|
}),
|
|
(T.onselectiondrag = function (e) {
|
|
T.selectiondrag &&
|
|
T.hasTextSelected() &&
|
|
T.debounced(
|
|
"selectionscroll",
|
|
function () {
|
|
L(e);
|
|
},
|
|
250
|
|
);
|
|
});
|
|
}
|
|
if (
|
|
(P.hasw3ctouch
|
|
? (T.css(T.ispage ? n("html") : T.win, {
|
|
"touch-action": "none",
|
|
}),
|
|
T.css(T.rail, { "touch-action": "none" }),
|
|
T.css(T.cursor, { "touch-action": "none" }),
|
|
T.bind(T.win, "pointerdown", T.ontouchstart),
|
|
T.bind(l, "pointerup", T.ontouchend),
|
|
T.delegate(l, "pointermove", T.ontouchmove))
|
|
: P.hasmstouch
|
|
? (T.css(T.ispage ? n("html") : T.win, {
|
|
"-ms-touch-action": "none",
|
|
}),
|
|
T.css(T.rail, { "-ms-touch-action": "none" }),
|
|
T.css(T.cursor, {
|
|
"-ms-touch-action": "none",
|
|
}),
|
|
T.bind(
|
|
T.win,
|
|
"MSPointerDown",
|
|
T.ontouchstart
|
|
),
|
|
T.bind(l, "MSPointerUp", T.ontouchend),
|
|
T.delegate(l, "MSPointerMove", T.ontouchmove),
|
|
T.bind(
|
|
T.cursor,
|
|
"MSGestureHold",
|
|
function (e) {
|
|
e.preventDefault();
|
|
}
|
|
),
|
|
T.bind(T.cursor, "contextmenu", function (e) {
|
|
e.preventDefault();
|
|
}))
|
|
: P.cantouch &&
|
|
(T.bind(
|
|
T.win,
|
|
"touchstart",
|
|
T.ontouchstart,
|
|
!1,
|
|
!0
|
|
),
|
|
T.bind(l, "touchend", T.ontouchend, !1, !0),
|
|
T.bind(
|
|
l,
|
|
"touchcancel",
|
|
T.ontouchend,
|
|
!1,
|
|
!0
|
|
),
|
|
T.delegate(
|
|
l,
|
|
"touchmove",
|
|
T.ontouchmove,
|
|
!1,
|
|
!0
|
|
)),
|
|
M.emulatetouch &&
|
|
(T.bind(
|
|
T.win,
|
|
"mousedown",
|
|
T.ontouchstart,
|
|
!1,
|
|
!0
|
|
),
|
|
T.bind(l, "mouseup", T.ontouchend, !1, !0),
|
|
T.bind(l, "mousemove", T.ontouchmove, !1, !0)),
|
|
(M.cursordragontouch ||
|
|
(!P.cantouch && !M.emulatetouch)) &&
|
|
(T.rail.css({ cursor: "default" }),
|
|
T.railh && T.railh.css({ cursor: "default" }),
|
|
T.jqbind(T.rail, "mouseenter", function () {
|
|
if (!T.ispage && !T.win.is(":visible"))
|
|
return !1;
|
|
T.canshowonmouseevent && T.showCursor(),
|
|
(T.rail.active = !0);
|
|
}),
|
|
T.jqbind(T.rail, "mouseleave", function () {
|
|
(T.rail.active = !1),
|
|
T.rail.drag || T.hideCursor();
|
|
}),
|
|
M.sensitiverail &&
|
|
(T.bind(T.rail, "click", function (e) {
|
|
T.doRailClick(e, !1, !1);
|
|
}),
|
|
T.bind(T.rail, "dblclick", function (e) {
|
|
T.doRailClick(e, !0, !1);
|
|
}),
|
|
T.bind(T.cursor, "click", function (e) {
|
|
T.cancelEvent(e);
|
|
}),
|
|
T.bind(T.cursor, "dblclick", function (e) {
|
|
T.cancelEvent(e);
|
|
})),
|
|
T.railh &&
|
|
(T.jqbind(
|
|
T.railh,
|
|
"mouseenter",
|
|
function () {
|
|
if (
|
|
!T.ispage &&
|
|
!T.win.is(":visible")
|
|
)
|
|
return !1;
|
|
T.canshowonmouseevent &&
|
|
T.showCursor(),
|
|
(T.rail.active = !0);
|
|
}
|
|
),
|
|
T.jqbind(
|
|
T.railh,
|
|
"mouseleave",
|
|
function () {
|
|
(T.rail.active = !1),
|
|
T.rail.drag || T.hideCursor();
|
|
}
|
|
),
|
|
M.sensitiverail &&
|
|
(T.bind(T.railh, "click", function (e) {
|
|
T.doRailClick(e, !1, !0);
|
|
}),
|
|
T.bind(
|
|
T.railh,
|
|
"dblclick",
|
|
function (e) {
|
|
T.doRailClick(e, !0, !0);
|
|
}
|
|
),
|
|
T.bind(
|
|
T.cursorh,
|
|
"click",
|
|
function (e) {
|
|
T.cancelEvent(e);
|
|
}
|
|
),
|
|
T.bind(
|
|
T.cursorh,
|
|
"dblclick",
|
|
function (e) {
|
|
T.cancelEvent(e);
|
|
}
|
|
)))),
|
|
M.cursordragontouch &&
|
|
(this.istouchcapable || P.cantouch) &&
|
|
(T.bind(
|
|
T.cursor,
|
|
"touchstart",
|
|
T.ontouchstartCursor
|
|
),
|
|
T.bind(
|
|
T.cursor,
|
|
"touchmove",
|
|
T.ontouchmoveCursor
|
|
),
|
|
T.bind(
|
|
T.cursor,
|
|
"touchend",
|
|
T.ontouchendCursor
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"touchstart",
|
|
function (e) {
|
|
T.ontouchstartCursor(e, !0);
|
|
}
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"touchmove",
|
|
T.ontouchmoveCursor
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"touchend",
|
|
T.ontouchendCursor
|
|
)),
|
|
M.emulatetouch || P.isandroid || P.isios
|
|
? (T.bind(
|
|
P.hasmousecapture ? T.win : l,
|
|
"mouseup",
|
|
T.ontouchend
|
|
),
|
|
T.onclick && T.bind(l, "click", T.onclick),
|
|
M.cursordragontouch
|
|
? (T.bind(
|
|
T.cursor,
|
|
"mousedown",
|
|
T.onmousedown
|
|
),
|
|
T.bind(
|
|
T.cursor,
|
|
"mouseup",
|
|
T.onmouseup
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"mousedown",
|
|
function (e) {
|
|
T.onmousedown(e, !0);
|
|
}
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"mouseup",
|
|
T.onmouseup
|
|
))
|
|
: (T.bind(
|
|
T.rail,
|
|
"mousedown",
|
|
function (e) {
|
|
e.preventDefault();
|
|
}
|
|
),
|
|
T.railh &&
|
|
T.bind(
|
|
T.railh,
|
|
"mousedown",
|
|
function (e) {
|
|
e.preventDefault();
|
|
}
|
|
)))
|
|
: (T.bind(
|
|
P.hasmousecapture ? T.win : l,
|
|
"mouseup",
|
|
T.onmouseup
|
|
),
|
|
T.bind(l, "mousemove", T.onmousemove),
|
|
T.onclick && T.bind(l, "click", T.onclick),
|
|
T.bind(T.cursor, "mousedown", T.onmousedown),
|
|
T.bind(T.cursor, "mouseup", T.onmouseup),
|
|
T.railh &&
|
|
(T.bind(
|
|
T.cursorh,
|
|
"mousedown",
|
|
function (e) {
|
|
T.onmousedown(e, !0);
|
|
}
|
|
),
|
|
T.bind(
|
|
T.cursorh,
|
|
"mouseup",
|
|
T.onmouseup
|
|
)),
|
|
!T.ispage &&
|
|
M.enablescrollonselection &&
|
|
(T.bind(
|
|
T.win[0],
|
|
"mousedown",
|
|
T.onselectionstart
|
|
),
|
|
T.bind(l, "mouseup", T.onselectionend),
|
|
T.bind(
|
|
T.cursor,
|
|
"mouseup",
|
|
T.onselectionend
|
|
),
|
|
T.cursorh &&
|
|
T.bind(
|
|
T.cursorh,
|
|
"mouseup",
|
|
T.onselectionend
|
|
),
|
|
T.bind(
|
|
l,
|
|
"mousemove",
|
|
T.onselectiondrag
|
|
)),
|
|
T.zoom &&
|
|
(T.jqbind(
|
|
T.zoom,
|
|
"mouseenter",
|
|
function () {
|
|
T.canshowonmouseevent &&
|
|
T.showCursor(),
|
|
(T.rail.active = !0);
|
|
}
|
|
),
|
|
T.jqbind(
|
|
T.zoom,
|
|
"mouseleave",
|
|
function () {
|
|
(T.rail.active = !1),
|
|
T.rail.drag || T.hideCursor();
|
|
}
|
|
))),
|
|
M.enablemousewheel &&
|
|
(T.isiframe ||
|
|
T.mousewheel(
|
|
P.isie && T.ispage ? l : T.win,
|
|
T.onmousewheel
|
|
),
|
|
T.mousewheel(T.rail, T.onmousewheel),
|
|
T.railh &&
|
|
T.mousewheel(T.railh, T.onmousewheelhr)),
|
|
T.ispage ||
|
|
P.cantouch ||
|
|
/HTML|^BODY/.test(T.win[0].nodeName) ||
|
|
(T.win.attr("tabindex") ||
|
|
T.win.attr({ tabindex: ++r }),
|
|
T.bind(T.win, "focus", function (e) {
|
|
(o =
|
|
T.getTarget(e).id ||
|
|
T.getTarget(e) ||
|
|
!1),
|
|
(T.hasfocus = !0),
|
|
T.canshowonmouseevent &&
|
|
T.noticeCursor();
|
|
}),
|
|
T.bind(T.win, "blur", function (e) {
|
|
(o = !1), (T.hasfocus = !1);
|
|
}),
|
|
T.bind(T.win, "mouseenter", function (e) {
|
|
(t =
|
|
T.getTarget(e).id ||
|
|
T.getTarget(e) ||
|
|
!1),
|
|
(T.hasmousefocus = !0),
|
|
T.canshowonmouseevent &&
|
|
T.noticeCursor();
|
|
}),
|
|
T.bind(T.win, "mouseleave", function (e) {
|
|
(t = !1),
|
|
(T.hasmousefocus = !1),
|
|
T.rail.drag || T.hideCursor();
|
|
})),
|
|
(T.onkeypress = function (e) {
|
|
if (T.railslocked && 0 === T.page.maxh)
|
|
return !0;
|
|
e = e || a.event;
|
|
var r = T.getTarget(e);
|
|
if (
|
|
r &&
|
|
/INPUT|TEXTAREA|SELECT|OPTION/.test(
|
|
r.nodeName
|
|
) &&
|
|
(!(
|
|
r.getAttribute("type") ||
|
|
r.type ||
|
|
!1
|
|
) ||
|
|
!/submit|button|cancel/i.tp)
|
|
)
|
|
return !0;
|
|
if (n(r).attr("contenteditable")) return !0;
|
|
if (
|
|
T.hasfocus ||
|
|
(T.hasmousefocus && !o) ||
|
|
(T.ispage && !o && !t)
|
|
) {
|
|
var i = e.keyCode;
|
|
if (T.railslocked && 27 != i)
|
|
return T.cancelEvent(e);
|
|
var s = e.ctrlKey || !1,
|
|
l = e.shiftKey || !1,
|
|
c = !1;
|
|
switch (i) {
|
|
case 38:
|
|
case 63233:
|
|
T.doScrollBy(72), (c = !0);
|
|
break;
|
|
case 40:
|
|
case 63235:
|
|
T.doScrollBy(-72), (c = !0);
|
|
break;
|
|
case 37:
|
|
case 63232:
|
|
T.railh &&
|
|
(s
|
|
? T.doScrollLeft(0)
|
|
: T.doScrollLeftBy(72),
|
|
(c = !0));
|
|
break;
|
|
case 39:
|
|
case 63234:
|
|
T.railh &&
|
|
(s
|
|
? T.doScrollLeft(
|
|
T.page.maxw
|
|
)
|
|
: T.doScrollLeftBy(-72),
|
|
(c = !0));
|
|
break;
|
|
case 33:
|
|
case 63276:
|
|
T.doScrollBy(T.view.h), (c = !0);
|
|
break;
|
|
case 34:
|
|
case 63277:
|
|
T.doScrollBy(-T.view.h), (c = !0);
|
|
break;
|
|
case 36:
|
|
case 63273:
|
|
T.railh && s
|
|
? T.doScrollPos(0, 0)
|
|
: T.doScrollTo(0),
|
|
(c = !0);
|
|
break;
|
|
case 35:
|
|
case 63275:
|
|
T.railh && s
|
|
? T.doScrollPos(
|
|
T.page.maxw,
|
|
T.page.maxh
|
|
)
|
|
: T.doScrollTo(T.page.maxh),
|
|
(c = !0);
|
|
break;
|
|
case 32:
|
|
M.spacebarenabled &&
|
|
(l
|
|
? T.doScrollBy(T.view.h)
|
|
: T.doScrollBy(-T.view.h),
|
|
(c = !0));
|
|
break;
|
|
case 27:
|
|
T.zoomactive &&
|
|
(T.doZoom(), (c = !0));
|
|
}
|
|
if (c) return T.cancelEvent(e);
|
|
}
|
|
}),
|
|
M.enablekeyboard &&
|
|
T.bind(
|
|
l,
|
|
P.isopera && !P.isopera12
|
|
? "keypress"
|
|
: "keydown",
|
|
T.onkeypress
|
|
),
|
|
T.bind(l, "keydown", function (e) {
|
|
(e.ctrlKey || !1) && (T.wheelprevented = !0);
|
|
}),
|
|
T.bind(l, "keyup", function (e) {
|
|
e.ctrlKey || !1 || (T.wheelprevented = !1);
|
|
}),
|
|
T.bind(a, "blur", function (e) {
|
|
T.wheelprevented = !1;
|
|
}),
|
|
T.bind(a, "resize", T.onscreenresize),
|
|
T.bind(a, "orientationchange", T.onscreenresize),
|
|
T.bind(a, "load", T.lazyResize),
|
|
P.ischrome && !T.ispage && !T.haswrapper)
|
|
) {
|
|
var C = T.win.attr("style"),
|
|
N = parseFloat(T.win.css("width")) + 1;
|
|
T.win.css("width", N),
|
|
T.synched("chromefix", function () {
|
|
T.win.attr("style", C);
|
|
});
|
|
}
|
|
if (
|
|
((T.onAttributeChange = function (e) {
|
|
T.lazyResize(T.isieold ? 250 : 30);
|
|
}),
|
|
M.enableobserver &&
|
|
(T.isie11 ||
|
|
!1 === m ||
|
|
((T.observerbody = new m(function (e) {
|
|
if (
|
|
(e.forEach(function (e) {
|
|
if ("attributes" == e.type)
|
|
return E.hasClass(
|
|
"modal-open"
|
|
) &&
|
|
E.hasClass(
|
|
"modal-dialog"
|
|
) &&
|
|
!n.contains(
|
|
n(
|
|
".modal-dialog"
|
|
)[0],
|
|
T.doc[0]
|
|
)
|
|
? T.hide()
|
|
: T.show();
|
|
}),
|
|
T.me.clientWidth != T.page.width ||
|
|
T.me.clientHeight !=
|
|
T.page.height)
|
|
)
|
|
return T.lazyResize(30);
|
|
})),
|
|
T.observerbody.observe(l.body, {
|
|
childList: !0,
|
|
subtree: !0,
|
|
characterData: !1,
|
|
attributes: !0,
|
|
attributeFilter: ["class"],
|
|
})),
|
|
!T.ispage && !T.haswrapper))
|
|
) {
|
|
var R = T.win[0];
|
|
!1 !== m
|
|
? ((T.observer = new m(function (e) {
|
|
e.forEach(T.onAttributeChange);
|
|
})),
|
|
T.observer.observe(R, {
|
|
childList: !0,
|
|
characterData: !1,
|
|
attributes: !0,
|
|
subtree: !1,
|
|
}),
|
|
(T.observerremover = new m(function (e) {
|
|
e.forEach(function (e) {
|
|
if (e.removedNodes.length > 0)
|
|
for (var o in e.removedNodes)
|
|
if (
|
|
T &&
|
|
e.removedNodes[o] === R
|
|
)
|
|
return T.remove();
|
|
});
|
|
})),
|
|
T.observerremover.observe(R.parentNode, {
|
|
childList: !0,
|
|
characterData: !1,
|
|
attributes: !1,
|
|
subtree: !1,
|
|
}))
|
|
: (T.bind(
|
|
R,
|
|
P.isie && !P.isie9
|
|
? "propertychange"
|
|
: "DOMAttrModified",
|
|
T.onAttributeChange
|
|
),
|
|
P.isie9 &&
|
|
R.attachEvent(
|
|
"onpropertychange",
|
|
T.onAttributeChange
|
|
),
|
|
T.bind(R, "DOMNodeRemoved", function (e) {
|
|
e.target === R && T.remove();
|
|
}));
|
|
}
|
|
!T.ispage &&
|
|
M.boxzoom &&
|
|
T.bind(a, "resize", T.resizeZoom),
|
|
T.istextarea &&
|
|
(T.bind(T.win, "keydown", T.lazyResize),
|
|
T.bind(T.win, "mouseup", T.lazyResize)),
|
|
T.lazyResize(30);
|
|
}
|
|
if ("IFRAME" == this.doc[0].nodeName) {
|
|
var _ = function () {
|
|
T.iframexd = !1;
|
|
var o;
|
|
try {
|
|
(o =
|
|
"contentDocument" in this
|
|
? this.contentDocument
|
|
: this.contentWindow._doc).domain;
|
|
} catch (e) {
|
|
(T.iframexd = !0), (o = !1);
|
|
}
|
|
if (T.iframexd)
|
|
return (
|
|
"console" in a &&
|
|
console.log(
|
|
"NiceScroll error: policy restriced iframe"
|
|
),
|
|
!0
|
|
);
|
|
if (
|
|
((T.forcescreen = !0),
|
|
T.isiframe &&
|
|
((T.iframe = {
|
|
doc: n(o),
|
|
html: T.doc.contents().find("html")[0],
|
|
body: T.doc.contents().find("body")[0],
|
|
}),
|
|
(T.getContentSize = function () {
|
|
return {
|
|
w: Math.max(
|
|
T.iframe.html.scrollWidth,
|
|
T.iframe.body.scrollWidth
|
|
),
|
|
h: Math.max(
|
|
T.iframe.html.scrollHeight,
|
|
T.iframe.body.scrollHeight
|
|
),
|
|
};
|
|
}),
|
|
(T.docscroll = n(T.iframe.body))),
|
|
!P.isios && M.iframeautoresize && !T.isiframe)
|
|
) {
|
|
T.win.scrollTop(0), T.doc.height("");
|
|
var t = Math.max(
|
|
o.getElementsByTagName("html")[0]
|
|
.scrollHeight,
|
|
o.body.scrollHeight
|
|
);
|
|
T.doc.height(t);
|
|
}
|
|
T.lazyResize(30),
|
|
T.css(n(T.iframe.body), e),
|
|
P.isios &&
|
|
T.haswrapper &&
|
|
T.css(n(o.body), {
|
|
"-webkit-transform":
|
|
"translate3d(0,0,0)",
|
|
}),
|
|
"contentWindow" in this
|
|
? T.bind(
|
|
this.contentWindow,
|
|
"scroll",
|
|
T.onscroll
|
|
)
|
|
: T.bind(o, "scroll", T.onscroll),
|
|
M.enablemousewheel &&
|
|
T.mousewheel(o, T.onmousewheel),
|
|
M.enablekeyboard &&
|
|
T.bind(
|
|
o,
|
|
P.isopera ? "keypress" : "keydown",
|
|
T.onkeypress
|
|
),
|
|
P.cantouch
|
|
? (T.bind(o, "touchstart", T.ontouchstart),
|
|
T.bind(o, "touchmove", T.ontouchmove))
|
|
: M.emulatetouch &&
|
|
(T.bind(o, "mousedown", T.ontouchstart),
|
|
T.bind(o, "mousemove", function (e) {
|
|
return T.ontouchmove(e, !0);
|
|
}),
|
|
M.grabcursorenabled &&
|
|
P.cursorgrabvalue &&
|
|
T.css(n(o.body), {
|
|
cursor: P.cursorgrabvalue,
|
|
})),
|
|
T.bind(o, "mouseup", T.ontouchend),
|
|
T.zoom &&
|
|
(M.dblclickzoom &&
|
|
T.bind(o, "dblclick", T.doZoom),
|
|
T.ongesturezoom &&
|
|
T.bind(
|
|
o,
|
|
"gestureend",
|
|
T.ongesturezoom
|
|
));
|
|
};
|
|
this.doc[0].readyState &&
|
|
"complete" === this.doc[0].readyState &&
|
|
setTimeout(function () {
|
|
_.call(T.doc[0], !1);
|
|
}, 500),
|
|
T.bind(this.doc, "load", _);
|
|
}
|
|
}),
|
|
(this.showCursor = function (e, o) {
|
|
if (
|
|
(T.cursortimeout &&
|
|
(clearTimeout(T.cursortimeout),
|
|
(T.cursortimeout = 0)),
|
|
T.rail)
|
|
) {
|
|
if (
|
|
(T.autohidedom &&
|
|
(T.autohidedom
|
|
.stop()
|
|
.css({ opacity: M.cursoropacitymax }),
|
|
(T.cursoractive = !0)),
|
|
(T.rail.drag && 1 == T.rail.drag.pt) ||
|
|
(void 0 !== e &&
|
|
!1 !== e &&
|
|
(T.scroll.y = (e / T.scrollratio.y) | 0),
|
|
void 0 !== o &&
|
|
(T.scroll.x = (o / T.scrollratio.x) | 0)),
|
|
T.cursor.css({
|
|
height: T.cursorheight,
|
|
top: T.scroll.y,
|
|
}),
|
|
T.cursorh)
|
|
) {
|
|
var t = T.hasreversehr
|
|
? T.scrollvaluemaxw - T.scroll.x
|
|
: T.scroll.x;
|
|
T.cursorh.css({
|
|
width: T.cursorwidth,
|
|
left:
|
|
!T.rail.align && T.rail.visibility
|
|
? t + T.rail.width
|
|
: t,
|
|
}),
|
|
(T.cursoractive = !0);
|
|
}
|
|
T.zoom &&
|
|
T.zoom.stop().css({ opacity: M.cursoropacitymax });
|
|
}
|
|
}),
|
|
(this.hideCursor = function (e) {
|
|
T.cursortimeout ||
|
|
(T.rail &&
|
|
T.autohidedom &&
|
|
((T.hasmousefocus && "leave" === M.autohidemode) ||
|
|
(T.cursortimeout = setTimeout(function () {
|
|
(T.rail.active && T.showonmouseevent) ||
|
|
(T.autohidedom.stop().animate({
|
|
opacity: M.cursoropacitymin,
|
|
}),
|
|
T.zoom &&
|
|
T.zoom.stop().animate({
|
|
opacity: M.cursoropacitymin,
|
|
}),
|
|
(T.cursoractive = !1)),
|
|
(T.cursortimeout = 0);
|
|
}, e || M.hidecursordelay))));
|
|
}),
|
|
(this.noticeCursor = function (e, o, t) {
|
|
T.showCursor(o, t), T.rail.active || T.hideCursor(e);
|
|
}),
|
|
(this.getContentSize = T.ispage
|
|
? function () {
|
|
return {
|
|
w: Math.max(
|
|
l.body.scrollWidth,
|
|
l.documentElement.scrollWidth
|
|
),
|
|
h: Math.max(
|
|
l.body.scrollHeight,
|
|
l.documentElement.scrollHeight
|
|
),
|
|
};
|
|
}
|
|
: T.haswrapper
|
|
? function () {
|
|
return {
|
|
w: T.doc[0].offsetWidth,
|
|
h: T.doc[0].offsetHeight,
|
|
};
|
|
}
|
|
: function () {
|
|
return {
|
|
w: T.docscroll[0].scrollWidth,
|
|
h: T.docscroll[0].scrollHeight,
|
|
};
|
|
}),
|
|
(this.onResize = function (e, o) {
|
|
if (!T || !T.win) return !1;
|
|
var t = T.page.maxh,
|
|
r = T.page.maxw,
|
|
i = T.view.h,
|
|
s = T.view.w;
|
|
if (
|
|
((T.view = {
|
|
w: T.ispage ? T.win.width() : T.win[0].clientWidth,
|
|
h: T.ispage
|
|
? T.win.height()
|
|
: T.win[0].clientHeight,
|
|
}),
|
|
(T.page = o || T.getContentSize()),
|
|
(T.page.maxh = Math.max(0, T.page.h - T.view.h)),
|
|
(T.page.maxw = Math.max(0, T.page.w - T.view.w)),
|
|
T.page.maxh == t &&
|
|
T.page.maxw == r &&
|
|
T.view.w == s &&
|
|
T.view.h == i)
|
|
) {
|
|
if (T.ispage) return T;
|
|
var n = T.win.offset();
|
|
if (T.lastposition) {
|
|
var l = T.lastposition;
|
|
if (l.top == n.top && l.left == n.left) return T;
|
|
}
|
|
T.lastposition = n;
|
|
}
|
|
return (
|
|
0 === T.page.maxh
|
|
? (T.hideRail(),
|
|
(T.scrollvaluemax = 0),
|
|
(T.scroll.y = 0),
|
|
(T.scrollratio.y = 0),
|
|
(T.cursorheight = 0),
|
|
T.setScrollTop(0),
|
|
T.rail && (T.rail.scrollable = !1))
|
|
: ((T.page.maxh -=
|
|
M.railpadding.top + M.railpadding.bottom),
|
|
(T.rail.scrollable = !0)),
|
|
0 === T.page.maxw
|
|
? (T.hideRailHr(),
|
|
(T.scrollvaluemaxw = 0),
|
|
(T.scroll.x = 0),
|
|
(T.scrollratio.x = 0),
|
|
(T.cursorwidth = 0),
|
|
T.setScrollLeft(0),
|
|
T.railh && (T.railh.scrollable = !1))
|
|
: ((T.page.maxw -=
|
|
M.railpadding.left + M.railpadding.right),
|
|
T.railh &&
|
|
(T.railh.scrollable = M.horizrailenabled)),
|
|
(T.railslocked =
|
|
T.locked ||
|
|
(0 === T.page.maxh && 0 === T.page.maxw)),
|
|
T.railslocked
|
|
? (T.ispage || T.updateScrollBar(T.view), !1)
|
|
: (T.hidden ||
|
|
(T.rail.visibility || T.showRail(),
|
|
T.railh &&
|
|
!T.railh.visibility &&
|
|
T.showRailHr()),
|
|
T.istextarea &&
|
|
T.win.css("resize") &&
|
|
"none" != T.win.css("resize") &&
|
|
(T.view.h -= 20),
|
|
(T.cursorheight = Math.min(
|
|
T.view.h,
|
|
Math.round(T.view.h * (T.view.h / T.page.h))
|
|
)),
|
|
(T.cursorheight = M.cursorfixedheight
|
|
? M.cursorfixedheight
|
|
: Math.max(
|
|
M.cursorminheight,
|
|
T.cursorheight
|
|
)),
|
|
(T.cursorwidth = Math.min(
|
|
T.view.w,
|
|
Math.round(T.view.w * (T.view.w / T.page.w))
|
|
)),
|
|
(T.cursorwidth = M.cursorfixedheight
|
|
? M.cursorfixedheight
|
|
: Math.max(M.cursorminheight, T.cursorwidth)),
|
|
(T.scrollvaluemax =
|
|
T.view.h -
|
|
T.cursorheight -
|
|
(M.railpadding.top + M.railpadding.bottom)),
|
|
T.hasborderbox ||
|
|
(T.scrollvaluemax -=
|
|
T.cursor[0].offsetHeight -
|
|
T.cursor[0].clientHeight),
|
|
T.railh &&
|
|
((T.railh.width =
|
|
T.page.maxh > 0
|
|
? T.view.w - T.rail.width
|
|
: T.view.w),
|
|
(T.scrollvaluemaxw =
|
|
T.railh.width -
|
|
T.cursorwidth -
|
|
(M.railpadding.left +
|
|
M.railpadding.right))),
|
|
T.ispage || T.updateScrollBar(T.view),
|
|
(T.scrollratio = {
|
|
x: T.page.maxw / T.scrollvaluemaxw,
|
|
y: T.page.maxh / T.scrollvaluemax,
|
|
}),
|
|
T.getScrollTop() > T.page.maxh
|
|
? T.doScrollTop(T.page.maxh)
|
|
: ((T.scroll.y =
|
|
(T.getScrollTop() / T.scrollratio.y) |
|
|
0),
|
|
(T.scroll.x =
|
|
(T.getScrollLeft() / T.scrollratio.x) |
|
|
0),
|
|
T.cursoractive && T.noticeCursor()),
|
|
T.scroll.y &&
|
|
0 === T.getScrollTop() &&
|
|
T.doScrollTo(
|
|
(T.scroll.y * T.scrollratio.y) | 0
|
|
),
|
|
T)
|
|
);
|
|
}),
|
|
(this.resize = T.onResize);
|
|
var O = 0;
|
|
(this.onscreenresize = function (e) {
|
|
clearTimeout(O);
|
|
var o = !T.ispage && !T.haswrapper;
|
|
o && T.hideRails(),
|
|
(O = setTimeout(function () {
|
|
T && (o && T.showRails(), T.resize()), (O = 0);
|
|
}, 120));
|
|
}),
|
|
(this.lazyResize = function (e) {
|
|
return (
|
|
clearTimeout(O),
|
|
(e = isNaN(e) ? 240 : e),
|
|
(O = setTimeout(function () {
|
|
T && T.resize(), (O = 0);
|
|
}, e)),
|
|
T
|
|
);
|
|
}),
|
|
(this.jqbind = function (e, o, t) {
|
|
T.events.push({ e: e, n: o, f: t, q: !0 }), n(e).on(o, t);
|
|
}),
|
|
(this.mousewheel = function (e, o, t) {
|
|
var r = "jquery" in e ? e[0] : e;
|
|
if ("onwheel" in l.createElement("div"))
|
|
T._bind(r, "wheel", o, t || !1);
|
|
else {
|
|
var i =
|
|
void 0 !== l.onmousewheel
|
|
? "mousewheel"
|
|
: "DOMMouseScroll";
|
|
S(r, i, o, t || !1),
|
|
"DOMMouseScroll" == i &&
|
|
S(r, "MozMousePixelScroll", o, t || !1);
|
|
}
|
|
});
|
|
var Y = !1;
|
|
if (P.haseventlistener) {
|
|
try {
|
|
var H = Object.defineProperty({}, "passive", {
|
|
get: function () {
|
|
Y = !0;
|
|
},
|
|
});
|
|
a.addEventListener("test", null, H);
|
|
} catch (e) {}
|
|
(this.stopPropagation = function (e) {
|
|
return (
|
|
!!e &&
|
|
((e = e.original ? e.original : e).stopPropagation(),
|
|
!1)
|
|
);
|
|
}),
|
|
(this.cancelEvent = function (e) {
|
|
return (
|
|
e.cancelable && e.preventDefault(),
|
|
e.stopImmediatePropagation(),
|
|
e.preventManipulation && e.preventManipulation(),
|
|
!1
|
|
);
|
|
});
|
|
} else
|
|
(Event.prototype.preventDefault = function () {
|
|
this.returnValue = !1;
|
|
}),
|
|
(Event.prototype.stopPropagation = function () {
|
|
this.cancelBubble = !0;
|
|
}),
|
|
(a.constructor.prototype.addEventListener =
|
|
l.constructor.prototype.addEventListener =
|
|
Element.prototype.addEventListener =
|
|
function (e, o, t) {
|
|
this.attachEvent("on" + e, o);
|
|
}),
|
|
(a.constructor.prototype.removeEventListener =
|
|
l.constructor.prototype.removeEventListener =
|
|
Element.prototype.removeEventListener =
|
|
function (e, o, t) {
|
|
this.detachEvent("on" + e, o);
|
|
}),
|
|
(this.cancelEvent = function (e) {
|
|
return (
|
|
(e = e || a.event) &&
|
|
((e.cancelBubble = !0),
|
|
(e.cancel = !0),
|
|
(e.returnValue = !1)),
|
|
!1
|
|
);
|
|
}),
|
|
(this.stopPropagation = function (e) {
|
|
return (e = e || a.event) && (e.cancelBubble = !0), !1;
|
|
});
|
|
(this.delegate = function (e, o, t, r, i) {
|
|
var s = d[o] || !1;
|
|
s ||
|
|
((s = {
|
|
a: [],
|
|
l: [],
|
|
f: function (e) {
|
|
for (
|
|
var o = s.l, t = !1, r = o.length - 1;
|
|
r >= 0;
|
|
r--
|
|
)
|
|
if (!1 === (t = o[r].call(e.target, e)))
|
|
return !1;
|
|
return t;
|
|
},
|
|
}),
|
|
T.bind(e, o, s.f, r, i),
|
|
(d[o] = s)),
|
|
T.ispage
|
|
? ((s.a = [T.id].concat(s.a)), (s.l = [t].concat(s.l)))
|
|
: (s.a.push(T.id), s.l.push(t));
|
|
}),
|
|
(this.undelegate = function (e, o, t, r, i) {
|
|
var s = d[o] || !1;
|
|
if (s && s.l)
|
|
for (var n = 0, l = s.l.length; n < l; n++)
|
|
s.a[n] === T.id &&
|
|
(s.a.splice(n),
|
|
s.l.splice(n),
|
|
0 === s.a.length &&
|
|
(T._unbind(e, o, s.l.f), (d[o] = null)));
|
|
}),
|
|
(this.bind = function (e, o, t, r, i) {
|
|
var s = "jquery" in e ? e[0] : e;
|
|
T._bind(s, o, t, r || !1, i || !1);
|
|
}),
|
|
(this._bind = function (e, o, t, r, i) {
|
|
T.events.push({ e: e, n: o, f: t, b: r, q: !1 }),
|
|
Y && i
|
|
? e.addEventListener(o, t, {
|
|
passive: !1,
|
|
capture: r,
|
|
})
|
|
: e.addEventListener(o, t, r || !1);
|
|
}),
|
|
(this._unbind = function (e, o, t, r) {
|
|
d[o]
|
|
? T.undelegate(e, o, t, r)
|
|
: e.removeEventListener(o, t, r);
|
|
}),
|
|
(this.unbindAll = function () {
|
|
for (var e = 0; e < T.events.length; e++) {
|
|
var o = T.events[e];
|
|
o.q
|
|
? o.e.unbind(o.n, o.f)
|
|
: T._unbind(o.e, o.n, o.f, o.b);
|
|
}
|
|
}),
|
|
(this.showRails = function () {
|
|
return T.showRail().showRailHr();
|
|
}),
|
|
(this.showRail = function () {
|
|
return (
|
|
0 === T.page.maxh ||
|
|
(!T.ispage && "none" == T.win.css("display")) ||
|
|
((T.rail.visibility = !0),
|
|
T.rail.css("display", "block")),
|
|
T
|
|
);
|
|
}),
|
|
(this.showRailHr = function () {
|
|
return (
|
|
T.railh &&
|
|
(0 === T.page.maxw ||
|
|
(!T.ispage && "none" == T.win.css("display")) ||
|
|
((T.railh.visibility = !0),
|
|
T.railh.css("display", "block"))),
|
|
T
|
|
);
|
|
}),
|
|
(this.hideRails = function () {
|
|
return T.hideRail().hideRailHr();
|
|
}),
|
|
(this.hideRail = function () {
|
|
return (
|
|
(T.rail.visibility = !1),
|
|
T.rail.css("display", "none"),
|
|
T
|
|
);
|
|
}),
|
|
(this.hideRailHr = function () {
|
|
return (
|
|
T.railh &&
|
|
((T.railh.visibility = !1),
|
|
T.railh.css("display", "none")),
|
|
T
|
|
);
|
|
}),
|
|
(this.show = function () {
|
|
return (T.hidden = !1), (T.railslocked = !1), T.showRails();
|
|
}),
|
|
(this.hide = function () {
|
|
return (T.hidden = !0), (T.railslocked = !0), T.hideRails();
|
|
}),
|
|
(this.toggle = function () {
|
|
return T.hidden ? T.show() : T.hide();
|
|
}),
|
|
(this.remove = function () {
|
|
T.stop(), T.cursortimeout && clearTimeout(T.cursortimeout);
|
|
for (var e in T.delaylist)
|
|
T.delaylist[e] && h(T.delaylist[e].h);
|
|
T.doZoomOut(),
|
|
T.unbindAll(),
|
|
P.isie9 &&
|
|
T.win[0].detachEvent(
|
|
"onpropertychange",
|
|
T.onAttributeChange
|
|
),
|
|
!1 !== T.observer && T.observer.disconnect(),
|
|
!1 !== T.observerremover &&
|
|
T.observerremover.disconnect(),
|
|
!1 !== T.observerbody && T.observerbody.disconnect(),
|
|
(T.events = null),
|
|
T.cursor && T.cursor.remove(),
|
|
T.cursorh && T.cursorh.remove(),
|
|
T.rail && T.rail.remove(),
|
|
T.railh && T.railh.remove(),
|
|
T.zoom && T.zoom.remove();
|
|
for (var o = 0; o < T.saved.css.length; o++) {
|
|
var t = T.saved.css[o];
|
|
t[0].css(t[1], void 0 === t[2] ? "" : t[2]);
|
|
}
|
|
(T.saved = !1), T.me.data("__nicescroll", "");
|
|
var r = n.nicescroll;
|
|
r.each(function (e) {
|
|
if (this && this.id === T.id) {
|
|
delete r[e];
|
|
for (var o = ++e; o < r.length; o++, e++)
|
|
r[e] = r[o];
|
|
--r.length && delete r[r.length];
|
|
}
|
|
});
|
|
for (var i in T) (T[i] = null), delete T[i];
|
|
T = null;
|
|
}),
|
|
(this.scrollstart = function (e) {
|
|
return (this.onscrollstart = e), T;
|
|
}),
|
|
(this.scrollend = function (e) {
|
|
return (this.onscrollend = e), T;
|
|
}),
|
|
(this.scrollcancel = function (e) {
|
|
return (this.onscrollcancel = e), T;
|
|
}),
|
|
(this.zoomin = function (e) {
|
|
return (this.onzoomin = e), T;
|
|
}),
|
|
(this.zoomout = function (e) {
|
|
return (this.onzoomout = e), T;
|
|
}),
|
|
(this.isScrollable = function (e) {
|
|
var o = e.target ? e.target : e;
|
|
if ("OPTION" == o.nodeName) return !0;
|
|
for (
|
|
;
|
|
o &&
|
|
1 == o.nodeType &&
|
|
o !== this.me[0] &&
|
|
!/^BODY|HTML/.test(o.nodeName);
|
|
|
|
) {
|
|
var t = n(o),
|
|
r =
|
|
t.css("overflowY") ||
|
|
t.css("overflowX") ||
|
|
t.css("overflow") ||
|
|
"";
|
|
if (/scroll|auto/.test(r))
|
|
return o.clientHeight != o.scrollHeight;
|
|
o = !!o.parentNode && o.parentNode;
|
|
}
|
|
return !1;
|
|
}),
|
|
(this.getViewport = function (e) {
|
|
for (
|
|
var o = !(!e || !e.parentNode) && e.parentNode;
|
|
o && 1 == o.nodeType && !/^BODY|HTML/.test(o.nodeName);
|
|
|
|
) {
|
|
var t = n(o);
|
|
if (/fixed|absolute/.test(t.css("position"))) return t;
|
|
var r =
|
|
t.css("overflowY") ||
|
|
t.css("overflowX") ||
|
|
t.css("overflow") ||
|
|
"";
|
|
if (
|
|
/scroll|auto/.test(r) &&
|
|
o.clientHeight != o.scrollHeight
|
|
)
|
|
return t;
|
|
if (t.getNiceScroll().length > 0) return t;
|
|
o = !!o.parentNode && o.parentNode;
|
|
}
|
|
return !1;
|
|
}),
|
|
(this.triggerScrollStart = function (e, o, t, r, i) {
|
|
if (T.onscrollstart) {
|
|
var s = {
|
|
type: "scrollstart",
|
|
current: { x: e, y: o },
|
|
request: { x: t, y: r },
|
|
end: { x: T.newscrollx, y: T.newscrolly },
|
|
speed: i,
|
|
};
|
|
T.onscrollstart.call(T, s);
|
|
}
|
|
}),
|
|
(this.triggerScrollEnd = function () {
|
|
if (T.onscrollend) {
|
|
var e = T.getScrollLeft(),
|
|
o = T.getScrollTop(),
|
|
t = {
|
|
type: "scrollend",
|
|
current: { x: e, y: o },
|
|
end: { x: e, y: o },
|
|
};
|
|
T.onscrollend.call(T, t);
|
|
}
|
|
});
|
|
var B = 0,
|
|
X = 0,
|
|
D = 0,
|
|
A = 1,
|
|
q = !1;
|
|
if (
|
|
((this.onmousewheel = function (e) {
|
|
if (T.wheelprevented || T.locked) return !1;
|
|
if (T.railslocked)
|
|
return T.debounced("checkunlock", T.resize, 250), !1;
|
|
if (T.rail.drag) return T.cancelEvent(e);
|
|
if (
|
|
("auto" === M.oneaxismousemode &&
|
|
0 !== e.deltaX &&
|
|
(M.oneaxismousemode = !1),
|
|
M.oneaxismousemode &&
|
|
0 === e.deltaX &&
|
|
!T.rail.scrollable)
|
|
)
|
|
return (
|
|
!T.railh ||
|
|
!T.railh.scrollable ||
|
|
T.onmousewheelhr(e)
|
|
);
|
|
var o = f(),
|
|
t = !1;
|
|
if (
|
|
(M.preservenativescrolling &&
|
|
T.checkarea + 600 < o &&
|
|
((T.nativescrollingarea = T.isScrollable(e)),
|
|
(t = !0)),
|
|
(T.checkarea = o),
|
|
T.nativescrollingarea)
|
|
)
|
|
return !0;
|
|
var r = k(e, !1, t);
|
|
return r && (T.checkarea = 0), r;
|
|
}),
|
|
(this.onmousewheelhr = function (e) {
|
|
if (!T.wheelprevented) {
|
|
if (T.railslocked || !T.railh.scrollable) return !0;
|
|
if (T.rail.drag) return T.cancelEvent(e);
|
|
var o = f(),
|
|
t = !1;
|
|
return (
|
|
M.preservenativescrolling &&
|
|
T.checkarea + 600 < o &&
|
|
((T.nativescrollingarea = T.isScrollable(e)),
|
|
(t = !0)),
|
|
(T.checkarea = o),
|
|
!!T.nativescrollingarea ||
|
|
(T.railslocked ? T.cancelEvent(e) : k(e, !0, t))
|
|
);
|
|
}
|
|
}),
|
|
(this.stop = function () {
|
|
return (
|
|
T.cancelScroll(),
|
|
T.scrollmon && T.scrollmon.stop(),
|
|
(T.cursorfreezed = !1),
|
|
(T.scroll.y = Math.round(
|
|
T.getScrollTop() * (1 / T.scrollratio.y)
|
|
)),
|
|
T.noticeCursor(),
|
|
T
|
|
);
|
|
}),
|
|
(this.getTransitionSpeed = function (e) {
|
|
return (80 + (e / 72) * M.scrollspeed) | 0;
|
|
}),
|
|
M.smoothscroll)
|
|
)
|
|
if (
|
|
T.ishwscroll &&
|
|
P.hastransition &&
|
|
M.usetransition &&
|
|
M.smoothscroll
|
|
) {
|
|
var j = "";
|
|
(this.resetTransition = function () {
|
|
(j = ""),
|
|
T.doc.css(
|
|
P.prefixstyle + "transition-duration",
|
|
"0ms"
|
|
);
|
|
}),
|
|
(this.prepareTransition = function (e, o) {
|
|
var t = o ? e : T.getTransitionSpeed(e),
|
|
r = t + "ms";
|
|
return (
|
|
j !== r &&
|
|
((j = r),
|
|
T.doc.css(
|
|
P.prefixstyle + "transition-duration",
|
|
r
|
|
)),
|
|
t
|
|
);
|
|
}),
|
|
(this.doScrollLeft = function (e, o) {
|
|
var t = T.scrollrunning
|
|
? T.newscrolly
|
|
: T.getScrollTop();
|
|
T.doScrollPos(e, t, o);
|
|
}),
|
|
(this.doScrollTop = function (e, o) {
|
|
var t = T.scrollrunning
|
|
? T.newscrollx
|
|
: T.getScrollLeft();
|
|
T.doScrollPos(t, e, o);
|
|
}),
|
|
(this.cursorupdate = {
|
|
running: !1,
|
|
start: function () {
|
|
var e = this;
|
|
if (!e.running) {
|
|
e.running = !0;
|
|
var o = function () {
|
|
e.running && u(o),
|
|
T.showCursor(
|
|
T.getScrollTop(),
|
|
T.getScrollLeft()
|
|
),
|
|
T.notifyScrollEvent(T.win[0]);
|
|
};
|
|
u(o);
|
|
}
|
|
},
|
|
stop: function () {
|
|
this.running = !1;
|
|
},
|
|
}),
|
|
(this.doScrollPos = function (e, o, t) {
|
|
var r = T.getScrollTop(),
|
|
i = T.getScrollLeft();
|
|
if (
|
|
(((T.newscrolly - r) * (o - r) < 0 ||
|
|
(T.newscrollx - i) * (e - i) < 0) &&
|
|
T.cancelScroll(),
|
|
M.bouncescroll
|
|
? (o < 0
|
|
? (o = (o / 2) | 0)
|
|
: o > T.page.maxh &&
|
|
(o =
|
|
(T.page.maxh +
|
|
(o - T.page.maxh) / 2) |
|
|
0),
|
|
e < 0
|
|
? (e = (e / 2) | 0)
|
|
: e > T.page.maxw &&
|
|
(e =
|
|
(T.page.maxw +
|
|
(e - T.page.maxw) / 2) |
|
|
0))
|
|
: (o < 0
|
|
? (o = 0)
|
|
: o > T.page.maxh &&
|
|
(o = T.page.maxh),
|
|
e < 0
|
|
? (e = 0)
|
|
: e > T.page.maxw &&
|
|
(e = T.page.maxw)),
|
|
T.scrollrunning &&
|
|
e == T.newscrollx &&
|
|
o == T.newscrolly)
|
|
)
|
|
return !1;
|
|
(T.newscrolly = o), (T.newscrollx = e);
|
|
var s = T.getScrollTop(),
|
|
n = T.getScrollLeft(),
|
|
l = {};
|
|
(l.x = e - n), (l.y = o - s);
|
|
var a = 0 | Math.sqrt(l.x * l.x + l.y * l.y),
|
|
c = T.prepareTransition(a);
|
|
T.scrollrunning ||
|
|
((T.scrollrunning = !0),
|
|
T.triggerScrollStart(n, s, e, o, c),
|
|
T.cursorupdate.start()),
|
|
(T.scrollendtrapped = !0),
|
|
P.transitionend ||
|
|
(T.scrollendtrapped &&
|
|
clearTimeout(T.scrollendtrapped),
|
|
(T.scrollendtrapped = setTimeout(
|
|
T.onScrollTransitionEnd,
|
|
c
|
|
))),
|
|
T.setScrollTop(T.newscrolly),
|
|
T.setScrollLeft(T.newscrollx);
|
|
}),
|
|
(this.cancelScroll = function () {
|
|
if (!T.scrollendtrapped) return !0;
|
|
var e = T.getScrollTop(),
|
|
o = T.getScrollLeft();
|
|
return (
|
|
(T.scrollrunning = !1),
|
|
P.transitionend ||
|
|
clearTimeout(P.transitionend),
|
|
(T.scrollendtrapped = !1),
|
|
T.resetTransition(),
|
|
T.setScrollTop(e),
|
|
T.railh && T.setScrollLeft(o),
|
|
T.timerscroll &&
|
|
T.timerscroll.tm &&
|
|
clearInterval(T.timerscroll.tm),
|
|
(T.timerscroll = !1),
|
|
(T.cursorfreezed = !1),
|
|
T.cursorupdate.stop(),
|
|
T.showCursor(e, o),
|
|
T
|
|
);
|
|
}),
|
|
(this.onScrollTransitionEnd = function () {
|
|
if (T.scrollendtrapped) {
|
|
var e = T.getScrollTop(),
|
|
o = T.getScrollLeft();
|
|
if (
|
|
(e < 0
|
|
? (e = 0)
|
|
: e > T.page.maxh && (e = T.page.maxh),
|
|
o < 0
|
|
? (o = 0)
|
|
: o > T.page.maxw && (o = T.page.maxw),
|
|
e != T.newscrolly || o != T.newscrollx)
|
|
)
|
|
return T.doScrollPos(o, e, M.snapbackspeed);
|
|
T.scrollrunning && T.triggerScrollEnd(),
|
|
(T.scrollrunning = !1),
|
|
(T.scrollendtrapped = !1),
|
|
T.resetTransition(),
|
|
(T.timerscroll = !1),
|
|
T.setScrollTop(e),
|
|
T.railh && T.setScrollLeft(o),
|
|
T.cursorupdate.stop(),
|
|
T.noticeCursor(!1, e, o),
|
|
(T.cursorfreezed = !1);
|
|
}
|
|
});
|
|
} else
|
|
(this.doScrollLeft = function (e, o) {
|
|
var t = T.scrollrunning
|
|
? T.newscrolly
|
|
: T.getScrollTop();
|
|
T.doScrollPos(e, t, o);
|
|
}),
|
|
(this.doScrollTop = function (e, o) {
|
|
var t = T.scrollrunning
|
|
? T.newscrollx
|
|
: T.getScrollLeft();
|
|
T.doScrollPos(t, e, o);
|
|
}),
|
|
(this.doScrollPos = function (e, o, t) {
|
|
var r = T.getScrollTop(),
|
|
i = T.getScrollLeft();
|
|
((T.newscrolly - r) * (o - r) < 0 ||
|
|
(T.newscrollx - i) * (e - i) < 0) &&
|
|
T.cancelScroll();
|
|
var s = !1;
|
|
if (
|
|
((T.bouncescroll && T.rail.visibility) ||
|
|
(o < 0
|
|
? ((o = 0), (s = !0))
|
|
: o > T.page.maxh &&
|
|
((o = T.page.maxh), (s = !0))),
|
|
(T.bouncescroll && T.railh.visibility) ||
|
|
(e < 0
|
|
? ((e = 0), (s = !0))
|
|
: e > T.page.maxw &&
|
|
((e = T.page.maxw), (s = !0))),
|
|
T.scrollrunning &&
|
|
T.newscrolly === o &&
|
|
T.newscrollx === e)
|
|
)
|
|
return !0;
|
|
(T.newscrolly = o),
|
|
(T.newscrollx = e),
|
|
(T.dst = {}),
|
|
(T.dst.x = e - i),
|
|
(T.dst.y = o - r),
|
|
(T.dst.px = i),
|
|
(T.dst.py = r);
|
|
var n =
|
|
0 |
|
|
Math.sqrt(
|
|
T.dst.x * T.dst.x + T.dst.y * T.dst.y
|
|
),
|
|
l = T.getTransitionSpeed(n);
|
|
T.bzscroll = {};
|
|
var a = s ? 1 : 0.58;
|
|
(T.bzscroll.x = new R(
|
|
i,
|
|
T.newscrollx,
|
|
l,
|
|
0,
|
|
0,
|
|
a,
|
|
1
|
|
)),
|
|
(T.bzscroll.y = new R(
|
|
r,
|
|
T.newscrolly,
|
|
l,
|
|
0,
|
|
0,
|
|
a,
|
|
1
|
|
));
|
|
f();
|
|
var c = function () {
|
|
if (T.scrollrunning) {
|
|
var e = T.bzscroll.y.getPos();
|
|
T.setScrollLeft(T.bzscroll.x.getNow()),
|
|
T.setScrollTop(T.bzscroll.y.getNow()),
|
|
e <= 1
|
|
? (T.timer = u(c))
|
|
: ((T.scrollrunning = !1),
|
|
(T.timer = 0),
|
|
T.triggerScrollEnd());
|
|
}
|
|
};
|
|
T.scrollrunning ||
|
|
(T.triggerScrollStart(i, r, e, o, l),
|
|
(T.scrollrunning = !0),
|
|
(T.timer = u(c)));
|
|
}),
|
|
(this.cancelScroll = function () {
|
|
return (
|
|
T.timer && h(T.timer),
|
|
(T.timer = 0),
|
|
(T.bzscroll = !1),
|
|
(T.scrollrunning = !1),
|
|
T
|
|
);
|
|
});
|
|
else
|
|
(this.doScrollLeft = function (e, o) {
|
|
var t = T.getScrollTop();
|
|
T.doScrollPos(e, t, o);
|
|
}),
|
|
(this.doScrollTop = function (e, o) {
|
|
var t = T.getScrollLeft();
|
|
T.doScrollPos(t, e, o);
|
|
}),
|
|
(this.doScrollPos = function (e, o, t) {
|
|
var r = e > T.page.maxw ? T.page.maxw : e;
|
|
r < 0 && (r = 0);
|
|
var i = o > T.page.maxh ? T.page.maxh : o;
|
|
i < 0 && (i = 0),
|
|
T.synched("scroll", function () {
|
|
T.setScrollTop(i), T.setScrollLeft(r);
|
|
});
|
|
}),
|
|
(this.cancelScroll = function () {});
|
|
(this.doScrollBy = function (e, o) {
|
|
z(0, e);
|
|
}),
|
|
(this.doScrollLeftBy = function (e, o) {
|
|
z(e, 0);
|
|
}),
|
|
(this.doScrollTo = function (e, o) {
|
|
var t = o ? Math.round(e * T.scrollratio.y) : e;
|
|
t < 0 ? (t = 0) : t > T.page.maxh && (t = T.page.maxh),
|
|
(T.cursorfreezed = !1),
|
|
T.doScrollTop(e);
|
|
}),
|
|
(this.checkContentSize = function () {
|
|
var e = T.getContentSize();
|
|
(e.h == T.page.h && e.w == T.page.w) || T.resize(!1, e);
|
|
}),
|
|
(T.onscroll = function (e) {
|
|
T.rail.drag ||
|
|
T.cursorfreezed ||
|
|
T.synched("scroll", function () {
|
|
(T.scroll.y = Math.round(
|
|
T.getScrollTop() / T.scrollratio.y
|
|
)),
|
|
T.railh &&
|
|
(T.scroll.x = Math.round(
|
|
T.getScrollLeft() / T.scrollratio.x
|
|
)),
|
|
T.noticeCursor();
|
|
});
|
|
}),
|
|
T.bind(T.docscroll, "scroll", T.onscroll),
|
|
(this.doZoomIn = function (e) {
|
|
if (!T.zoomactive) {
|
|
(T.zoomactive = !0), (T.zoomrestore = { style: {} });
|
|
var o = [
|
|
"position",
|
|
"top",
|
|
"left",
|
|
"zIndex",
|
|
"backgroundColor",
|
|
"marginTop",
|
|
"marginBottom",
|
|
"marginLeft",
|
|
"marginRight",
|
|
],
|
|
t = T.win[0].style;
|
|
for (var r in o) {
|
|
var i = o[r];
|
|
T.zoomrestore.style[i] =
|
|
void 0 !== t[i] ? t[i] : "";
|
|
}
|
|
(T.zoomrestore.style.width = T.win.css("width")),
|
|
(T.zoomrestore.style.height = T.win.css("height")),
|
|
(T.zoomrestore.padding = {
|
|
w: T.win.outerWidth() - T.win.width(),
|
|
h: T.win.outerHeight() - T.win.height(),
|
|
}),
|
|
P.isios4 &&
|
|
((T.zoomrestore.scrollTop = c.scrollTop()),
|
|
c.scrollTop(0)),
|
|
T.win.css({
|
|
position: P.isios4 ? "absolute" : "fixed",
|
|
top: 0,
|
|
left: 0,
|
|
zIndex: s + 100,
|
|
margin: 0,
|
|
});
|
|
var n = T.win.css("backgroundColor");
|
|
return (
|
|
("" === n ||
|
|
/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(
|
|
n
|
|
)) &&
|
|
T.win.css("backgroundColor", "#fff"),
|
|
T.rail.css({ zIndex: s + 101 }),
|
|
T.zoom.css({ zIndex: s + 102 }),
|
|
T.zoom.css("backgroundPosition", "0 -18px"),
|
|
T.resizeZoom(),
|
|
T.onzoomin && T.onzoomin.call(T),
|
|
T.cancelEvent(e)
|
|
);
|
|
}
|
|
}),
|
|
(this.doZoomOut = function (e) {
|
|
if (T.zoomactive)
|
|
return (
|
|
(T.zoomactive = !1),
|
|
T.win.css("margin", ""),
|
|
T.win.css(T.zoomrestore.style),
|
|
P.isios4 && c.scrollTop(T.zoomrestore.scrollTop),
|
|
T.rail.css({ "z-index": T.zindex }),
|
|
T.zoom.css({ "z-index": T.zindex }),
|
|
(T.zoomrestore = !1),
|
|
T.zoom.css("backgroundPosition", "0 0"),
|
|
T.onResize(),
|
|
T.onzoomout && T.onzoomout.call(T),
|
|
T.cancelEvent(e)
|
|
);
|
|
}),
|
|
(this.doZoom = function (e) {
|
|
return T.zoomactive ? T.doZoomOut(e) : T.doZoomIn(e);
|
|
}),
|
|
(this.resizeZoom = function () {
|
|
if (T.zoomactive) {
|
|
var e = T.getScrollTop();
|
|
T.win.css({
|
|
width: c.width() - T.zoomrestore.padding.w + "px",
|
|
height: c.height() - T.zoomrestore.padding.h + "px",
|
|
}),
|
|
T.onResize(),
|
|
T.setScrollTop(Math.min(T.page.maxh, e));
|
|
}
|
|
}),
|
|
this.init(),
|
|
n.nicescroll.push(this);
|
|
},
|
|
y = function (e) {
|
|
var o = this;
|
|
(this.nc = e),
|
|
(this.lastx = 0),
|
|
(this.lasty = 0),
|
|
(this.speedx = 0),
|
|
(this.speedy = 0),
|
|
(this.lasttime = 0),
|
|
(this.steptime = 0),
|
|
(this.snapx = !1),
|
|
(this.snapy = !1),
|
|
(this.demulx = 0),
|
|
(this.demuly = 0),
|
|
(this.lastscrollx = -1),
|
|
(this.lastscrolly = -1),
|
|
(this.chkx = 0),
|
|
(this.chky = 0),
|
|
(this.timer = 0),
|
|
(this.reset = function (e, t) {
|
|
o.stop(),
|
|
(o.steptime = 0),
|
|
(o.lasttime = f()),
|
|
(o.speedx = 0),
|
|
(o.speedy = 0),
|
|
(o.lastx = e),
|
|
(o.lasty = t),
|
|
(o.lastscrollx = -1),
|
|
(o.lastscrolly = -1);
|
|
}),
|
|
(this.update = function (e, t) {
|
|
var r = f();
|
|
(o.steptime = r - o.lasttime), (o.lasttime = r);
|
|
var i = t - o.lasty,
|
|
s = e - o.lastx,
|
|
n = o.nc.getScrollTop() + i,
|
|
l = o.nc.getScrollLeft() + s;
|
|
(o.snapx = l < 0 || l > o.nc.page.maxw),
|
|
(o.snapy = n < 0 || n > o.nc.page.maxh),
|
|
(o.speedx = s),
|
|
(o.speedy = i),
|
|
(o.lastx = e),
|
|
(o.lasty = t);
|
|
}),
|
|
(this.stop = function () {
|
|
o.nc.unsynched("domomentum2d"),
|
|
o.timer && clearTimeout(o.timer),
|
|
(o.timer = 0),
|
|
(o.lastscrollx = -1),
|
|
(o.lastscrolly = -1);
|
|
}),
|
|
(this.doSnapy = function (e, t) {
|
|
var r = !1;
|
|
t < 0
|
|
? ((t = 0), (r = !0))
|
|
: t > o.nc.page.maxh &&
|
|
((t = o.nc.page.maxh), (r = !0)),
|
|
e < 0
|
|
? ((e = 0), (r = !0))
|
|
: e > o.nc.page.maxw &&
|
|
((e = o.nc.page.maxw), (r = !0)),
|
|
r
|
|
? o.nc.doScrollPos(e, t, o.nc.opt.snapbackspeed)
|
|
: o.nc.triggerScrollEnd();
|
|
}),
|
|
(this.doMomentum = function (e) {
|
|
var t = f(),
|
|
r = e ? t + e : o.lasttime,
|
|
i = o.nc.getScrollLeft(),
|
|
s = o.nc.getScrollTop(),
|
|
n = o.nc.page.maxh,
|
|
l = o.nc.page.maxw;
|
|
(o.speedx = l > 0 ? Math.min(60, o.speedx) : 0),
|
|
(o.speedy = n > 0 ? Math.min(60, o.speedy) : 0);
|
|
var a = r && t - r <= 60;
|
|
(s < 0 || s > n || i < 0 || i > l) && (a = !1);
|
|
var c = !(!o.speedy || !a) && o.speedy,
|
|
d = !(!o.speedx || !a) && o.speedx;
|
|
if (c || d) {
|
|
var u = Math.max(16, o.steptime);
|
|
if (u > 50) {
|
|
var h = u / 50;
|
|
(o.speedx *= h), (o.speedy *= h), (u = 50);
|
|
}
|
|
(o.demulxy = 0),
|
|
(o.lastscrollx = o.nc.getScrollLeft()),
|
|
(o.chkx = o.lastscrollx),
|
|
(o.lastscrolly = o.nc.getScrollTop()),
|
|
(o.chky = o.lastscrolly);
|
|
var p = o.lastscrollx,
|
|
m = o.lastscrolly,
|
|
g = function () {
|
|
var e = f() - t > 600 ? 0.04 : 0.02;
|
|
o.speedx &&
|
|
((p = Math.floor(
|
|
o.lastscrollx -
|
|
o.speedx * (1 - o.demulxy)
|
|
)),
|
|
(o.lastscrollx = p),
|
|
(p < 0 || p > l) && (e = 0.1)),
|
|
o.speedy &&
|
|
((m = Math.floor(
|
|
o.lastscrolly -
|
|
o.speedy * (1 - o.demulxy)
|
|
)),
|
|
(o.lastscrolly = m),
|
|
(m < 0 || m > n) && (e = 0.1)),
|
|
(o.demulxy = Math.min(1, o.demulxy + e)),
|
|
o.nc.synched("domomentum2d", function () {
|
|
if (o.speedx) {
|
|
o.nc.getScrollLeft();
|
|
(o.chkx = p), o.nc.setScrollLeft(p);
|
|
}
|
|
if (o.speedy) {
|
|
o.nc.getScrollTop();
|
|
(o.chky = m), o.nc.setScrollTop(m);
|
|
}
|
|
o.timer ||
|
|
(o.nc.hideCursor(),
|
|
o.doSnapy(p, m));
|
|
}),
|
|
o.demulxy < 1
|
|
? (o.timer = setTimeout(g, u))
|
|
: (o.stop(),
|
|
o.nc.hideCursor(),
|
|
o.doSnapy(p, m));
|
|
};
|
|
g();
|
|
} else o.doSnapy(o.nc.getScrollLeft(), o.nc.getScrollTop());
|
|
});
|
|
},
|
|
x = e.fn.scrollTop;
|
|
(e.cssHooks.pageYOffset = {
|
|
get: function (e, o, t) {
|
|
var r = n.data(e, "__nicescroll") || !1;
|
|
return r && r.ishwscroll ? r.getScrollTop() : x.call(e);
|
|
},
|
|
set: function (e, o) {
|
|
var t = n.data(e, "__nicescroll") || !1;
|
|
return (
|
|
t && t.ishwscroll ? t.setScrollTop(parseInt(o)) : x.call(e, o),
|
|
this
|
|
);
|
|
},
|
|
}),
|
|
(e.fn.scrollTop = function (e) {
|
|
if (void 0 === e) {
|
|
var o = !!this[0] && (n.data(this[0], "__nicescroll") || !1);
|
|
return o && o.ishwscroll ? o.getScrollTop() : x.call(this);
|
|
}
|
|
return this.each(function () {
|
|
var o = n.data(this, "__nicescroll") || !1;
|
|
o && o.ishwscroll
|
|
? o.setScrollTop(parseInt(e))
|
|
: x.call(n(this), e);
|
|
});
|
|
});
|
|
var S = e.fn.scrollLeft;
|
|
(n.cssHooks.pageXOffset = {
|
|
get: function (e, o, t) {
|
|
var r = n.data(e, "__nicescroll") || !1;
|
|
return r && r.ishwscroll ? r.getScrollLeft() : S.call(e);
|
|
},
|
|
set: function (e, o) {
|
|
var t = n.data(e, "__nicescroll") || !1;
|
|
return (
|
|
t && t.ishwscroll ? t.setScrollLeft(parseInt(o)) : S.call(e, o),
|
|
this
|
|
);
|
|
},
|
|
}),
|
|
(e.fn.scrollLeft = function (e) {
|
|
if (void 0 === e) {
|
|
var o = !!this[0] && (n.data(this[0], "__nicescroll") || !1);
|
|
return o && o.ishwscroll ? o.getScrollLeft() : S.call(this);
|
|
}
|
|
return this.each(function () {
|
|
var o = n.data(this, "__nicescroll") || !1;
|
|
o && o.ishwscroll
|
|
? o.setScrollLeft(parseInt(e))
|
|
: S.call(n(this), e);
|
|
});
|
|
});
|
|
var z = function (e) {
|
|
var o = this;
|
|
if (
|
|
((this.length = 0),
|
|
(this.name = "nicescrollarray"),
|
|
(this.each = function (e) {
|
|
return n.each(o, e), o;
|
|
}),
|
|
(this.push = function (e) {
|
|
(o[o.length] = e), o.length++;
|
|
}),
|
|
(this.eq = function (e) {
|
|
return o[e];
|
|
}),
|
|
e)
|
|
)
|
|
for (var t = 0; t < e.length; t++) {
|
|
var r = n.data(e[t], "__nicescroll") || !1;
|
|
r && ((this[this.length] = r), this.length++);
|
|
}
|
|
return this;
|
|
};
|
|
!(function (e, o, t) {
|
|
for (var r = 0, i = o.length; r < i; r++) t(e, o[r]);
|
|
})(
|
|
z.prototype,
|
|
[
|
|
"show",
|
|
"hide",
|
|
"toggle",
|
|
"onResize",
|
|
"resize",
|
|
"remove",
|
|
"stop",
|
|
"doScrollPos",
|
|
],
|
|
function (e, o) {
|
|
e[o] = function () {
|
|
var e = arguments;
|
|
return this.each(function () {
|
|
this[o].apply(this, e);
|
|
});
|
|
};
|
|
}
|
|
),
|
|
(e.fn.getNiceScroll = function (e) {
|
|
return void 0 === e
|
|
? new z(this)
|
|
: (this[e] && n.data(this[e], "__nicescroll")) || !1;
|
|
}),
|
|
((e.expr.pseudos || e.expr[":"]).nicescroll = function (e) {
|
|
return void 0 !== n.data(e, "__nicescroll");
|
|
}),
|
|
(n.fn.niceScroll = function (e, o) {
|
|
void 0 !== o ||
|
|
"object" != typeof e ||
|
|
"jquery" in e ||
|
|
((o = e), (e = !1));
|
|
var t = new z();
|
|
return (
|
|
this.each(function () {
|
|
var r = n(this),
|
|
i = n.extend({}, o);
|
|
if (e) {
|
|
var s = n(e);
|
|
(i.doc = s.length > 1 ? n(e, r) : s), (i.win = r);
|
|
}
|
|
!("doc" in i) || "win" in i || (i.win = r);
|
|
var l = r.data("__nicescroll") || !1;
|
|
l ||
|
|
((i.doc = i.doc || r),
|
|
(l = new b(i, r)),
|
|
r.data("__nicescroll", l)),
|
|
t.push(l);
|
|
}),
|
|
1 === t.length ? t[0] : t
|
|
);
|
|
}),
|
|
(a.NiceScroll = {
|
|
getjQuery: function () {
|
|
return e;
|
|
},
|
|
}),
|
|
n.nicescroll || ((n.nicescroll = new z()), (n.nicescroll.options = g));
|
|
});
|