View file Structura/Template/HTWF/scripts/smooth.scroll.min.js

File size: 7.71Kb
"use strict"; !function () { function e() { z.keyboardSupport && f("keydown", a) } function t() { if (!A && document.body) { A = !0; var t = document.body, o = document.documentElement, n = window.innerHeight, r = t.scrollHeight; if (B = document.compatMode.indexOf("CSS") >= 0 ? o : t, D = t, e(), top != self) X = !0; else if (r > n && (t.offsetHeight <= n || o.offsetHeight <= n)) { var a = document.createElement("div"); a.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + B.scrollHeight + "px", document.body.appendChild(a); var i; T = function () { i || (i = setTimeout(function () { L || (a.style.height = "0", a.style.height = B.scrollHeight + "px", i = null) }, 500)) }, setTimeout(T, 10), f("resize", T); var l = { attributes: !0, childList: !0, characterData: !1 }; if (M = new V(T), M.observe(t, l), B.offsetHeight <= n) { var c = document.createElement("div"); c.style.clear = "both", t.appendChild(c) } } z.fixedBackground || L || (t.style.backgroundAttachment = "scroll", o.style.backgroundAttachment = "scroll") } } function o() { M && M.disconnect(), h(I, r), h("mousedown", i), h("keydown", a), h("resize", T), h("load", t) } function n(e, t, o) { if (p(t, o), 1 != z.accelerationMax) { var n = Date.now(), r = n - R; if (r < z.accelerationDelta) { var a = (1 + 50 / r) / 2; a > 1 && (a = Math.min(a, z.accelerationMax), t *= a, o *= a) } R = Date.now() } if (q.push({ x: t, y: o, lastX: 0 > t ? .99 : -.99, lastY: 0 > o ? .99 : -.99, start: Date.now() }), !P) { var i = e === document.body, l = function () { for (var n = Date.now(), r = 0, a = 0, c = 0; c < q.length; c++) { var u = q[c], d = n - u.start, s = d >= z.animationTime, m = s ? 1 : d / z.animationTime; z.pulseAlgorithm && (m = x(m)); var f = u.x * m - u.lastX >> 0, h = u.y * m - u.lastY >> 0; r += f, a += h, u.lastX += f, u.lastY += h, s && (q.splice(c, 1), c--) } i ? window.scrollBy(r, a) : (r && (e.scrollLeft += r), a && (e.scrollTop += a)), t || o || (q = []), q.length ? _(l, e, 1e3 / z.frameRate + 1) : P = !1 }; _(l, e, 0), P = !0 } } function r(e) { A || t(); var o = e.target, r = u(o); if (!r || e.defaultPrevented || e.ctrlKey) return !0; if (w(D, "embed") || w(o, "embed") && /\.pdf/i.test(o.src) || w(D, "object")) return !0; var a = -e.wheelDeltaX || e.deltaX || 0, i = -e.wheelDeltaY || e.deltaY || 0; return K && (e.wheelDeltaX && b(e.wheelDeltaX, 120) && (a = -120 * (e.wheelDeltaX / Math.abs(e.wheelDeltaX))), e.wheelDeltaY && b(e.wheelDeltaY, 120) && (i = -120 * (e.wheelDeltaY / Math.abs(e.wheelDeltaY)))), a || i || (i = -e.wheelDelta || 0), 1 === e.deltaMode && (a *= 40, i *= 40), !z.touchpadSupport && v(i) ? !0 : (Math.abs(a) > 1.2 && (a *= z.stepSize / 120), Math.abs(i) > 1.2 && (i *= z.stepSize / 120), n(r, a, i), e.preventDefault(), void l()) } function a(e) { var t = e.target, o = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey && e.keyCode !== N.spacebar; document.contains(D) || (D = document.activeElement); var r = /^(textarea|select|embed|object)$/i, a = /^(button|submit|radio|checkbox|file|color|image)$/i; if (r.test(t.nodeName) || w(t, "input") && !a.test(t.type) || w(D, "video") || y(e) || t.isContentEditable || e.defaultPrevented || o) return !0; if ((w(t, "button") || w(t, "input") && a.test(t.type)) && e.keyCode === N.spacebar) return !0; var i, c = 0, d = 0, s = u(D), m = s.clientHeight; switch (s == document.body && (m = window.innerHeight), e.keyCode) { case N.up: d = -z.arrowScroll; break; case N.down: d = z.arrowScroll; break; case N.spacebar: i = e.shiftKey ? 1 : -1, d = -i * m * .9; break; case N.pageup: d = .9 * -m; break; case N.pagedown: d = .9 * m; break; case N.home: d = -s.scrollTop; break; case N.end: var f = s.scrollHeight - s.scrollTop - m; d = f > 0 ? f + 10 : 0; break; case N.left: c = -z.arrowScroll; break; case N.right: c = z.arrowScroll; break; default: return !0 } n(s, c, d), e.preventDefault(), l() } function i(e) { D = e.target } function l() { clearTimeout(E), E = setInterval(function () { F = {} }, 1e3) } function c(e, t) { for (var o = e.length; o--;) F[j(e[o])] = t; return t } function u(e) { var t = [], o = document.body, n = B.scrollHeight; do { var r = F[j(e)]; if (r) return c(t, r); if (t.push(e), n === e.scrollHeight) { var a = s(B) && s(o), i = a || m(B); if (X && d(B) || !X && i) return c(t, $()) } else if (d(e) && m(e)) return c(t, e) } while (e = e.parentElement) } function d(e) { return e.clientHeight + 10 < e.scrollHeight } function s(e) { var t = getComputedStyle(e, "").getPropertyValue("overflow-y"); return "hidden" !== t } function m(e) { var t = getComputedStyle(e, "").getPropertyValue("overflow-y"); return "scroll" === t || "auto" === t } function f(e, t) { window.addEventListener(e, t, !1) } function h(e, t) { window.removeEventListener(e, t, !1) } function w(e, t) { return (e.nodeName || "").toLowerCase() === t.toLowerCase() } function p(e, t) { e = e > 0 ? 1 : -1, t = t > 0 ? 1 : -1, (Y.x !== e || Y.y !== t) && (Y.x = e, Y.y = t, q = [], R = 0) } function v(e) { return e ? (O.length || (O = [e, e, e]), e = Math.abs(e), O.push(e), O.shift(), clearTimeout(H), H = setTimeout(function () { window.localStorage && (localStorage.SS_deltaBuffer = O.join(",")) }, 1e3), !g(120) && !g(100)) : void 0 } function b(e, t) { return Math.floor(e / t) == e / t } function g(e) { return b(O[0], e) && b(O[1], e) && b(O[2], e) } function y(e) { var t = e.target, o = !1; if (-1 != document.URL.indexOf("www.youtube.com/watch")) do if (o = t.classList && t.classList.contains("html5-video-controls")) break; while (t = t.parentNode); return o } function S(e) { var t, o, n; return e *= z.pulseScale, 1 > e ? t = e - (1 - Math.exp(-e)) : (o = Math.exp(-1), e -= 1, n = 1 - Math.exp(-e), t = o + n * (1 - o)), t * z.pulseNormalize } function x(e) { return e >= 1 ? 1 : 0 >= e ? 0 : (1 == z.pulseNormalize && (z.pulseNormalize /= S(1)), S(e)) } function k(e) { for (var t in e) C.hasOwnProperty(t) && (z[t] = e[t]) } var D, M, T, E, H, C = { frameRate: 150, animationTime: 400, stepSize: 100, pulseAlgorithm: !0, pulseScale: 4, pulseNormalize: 1, accelerationDelta: 10, accelerationMax: 3, keyboardSupport: !0, arrowScroll: 50, touchpadSupport: !1, fixedBackground: !0, excluded: "" }, z = C, L = !1, X = !1, Y = { x: 0, y: 0 }, A = !1, B = document.documentElement, O = [], K = /^Mac/.test(navigator.platform), N = { left: 37, up: 38, right: 39, down: 40, spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36 }, q = [], P = !1, R = Date.now(), j = function () { var e = 0; return function (t) { return t.uniqueID || (t.uniqueID = e++) } }(), F = {}; window.localStorage && localStorage.SS_deltaBuffer && (O = localStorage.SS_deltaBuffer.split(",")); var I, _ = function () { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e, t, o) { window.setTimeout(e, o || 1e3 / 60) } }(), V = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, $ = function () { var e; return function () { if (!e) { var t = document.createElement("div"); t.style.cssText = "height:10000px;width:1px;", document.body.appendChild(t); { var o = document.body.scrollTop; document.documentElement.scrollTop } window.scrollBy(0, 1), e = document.body.scrollTop != o ? document.body : document.documentElement, window.scrollBy(0, -1), document.body.removeChild(t) } return e } }(), U = window.navigator.userAgent, W = /Edge/.test(U), G = /chrome/i.test(U) && !W, J = /safari/i.test(U) && !W, Q = /mobile/i.test(U), Z = (G || J) && !Q; "onwheel" in document.createElement("div") ? I = "wheel" : "onmousewheel" in document.createElement("div") && (I = "mousewheel"), I && Z && (f(I, r), f("mousedown", i), f("load", t)), k.destroy = o, window.SmoothScrollOptions && k(window.SmoothScrollOptions), "object" == typeof exports ? module.exports = k : window.SmoothScroll = k }();