PageSourceSearch

https://www.maxcode.in/assets/js/smooth-scroll.js

js maxcode.in collected 2026-10-05 01:22:43 UTC 11,969 bytes, 313 lines download raw bytes

1! function() {
2    var e, t, o, n, r = {
3            frameRate: 150,
4            animationTime: 600,
5            stepSize: 80,
6            pulseAlgorithm: !0,
7            pulseScale: 4,
8            pulseNormalize: 1,
9            accelerationDelta: 50,
10            accelerationMax: 3,
11            keyboardSupport: !0,
12            arrowScroll: 50,
13            fixedBackground: !0,
14            excluded: ""
15        },
16        a = r,
17        l = !1,
18        i = {
19            x: 0,
20            y: 0
21        },
22        c = !1,
23        s = document.documentElement,
24        u = [],
25        d = /^Mac/.test(navigator.platform),
26        f = {
27            37: 1,
28            38: 1,
29            39: 1,
30            40: 1
31        };
32
33    function m() {
34        if (!c && document.body) {
35            c = !0;
36            var n = document.body,
37                r = document.documentElement,
38                i = window.innerHeight,
39                u = n.scrollHeight;
40            if (s = document.compatMode.indexOf("CSS") >= 0 ? r : n, e = n, a.keyboardSupport && X("keydown", b), top != self) l = !0;
41            else if (J && u > i && (n.offsetHeight <= i || r.offsetHeight <= i)) {
42                var d, f = document.createElement("div");
43                if (f.style.cssText = "position:absolute; z-index:-10000; top:0; left:0; right:0; height:" + s.scrollHeight + "px", document.body.appendChild(f), o = function() {
44                        d || (d = setTimeout((function() {
45                            f.style.height = "0", f.style.height = s.scrollHeight + "px", d = null
46                        }), 500))
47                    }, setTimeout(o, 10), X("resize", o), (t = new j(o)).observe(n, {
48                        attributes: !0,
49                        childList: !0,
50                        characterData: !1
51                    }), s.offsetHeight <= i) {
52                    var m = document.createElement("div");
53                    m.style.clear = "both", n.appendChild(m)
54                }
55            }
56            a.fixedBackground || (n.style.backgroundAttachment = "scroll", r.style.backgroundAttachment = "scroll")
57        }
58    }
59    var h = [],
60        w = !1,
61        v = Date.now();
62
63    function p(e, t, o) {
64        var n, r;
65        if (n = (n = t) > 0 ? 1 : -1, r = (r = o) > 0 ? 1 : -1, (i.x !== n || i.y !== r) && (i.x = n, i.y = r, h = [], v = 0), 1 != a.accelerationMax) {
66            var l = Date.now() - v;
67            if (l < a.accelerationDelta) {
68                var c = (1 + 50 / l) / 2;
69                c > 1 && (c = Math.min(c, a.accelerationMax), t *= c, o *= c)
70            }
71            v = Date.now()
72        }
73        if (h.push({
74                x: t,
75                y: o,
76                lastX: t < 0 ? .99 : -.99,
77                lastY: o < 0 ? .99 : -.99,
78                start: Date.now()
79            }), !w) {
80            var s = R(),
81                u = e === s || e === document.body;
82            null == e.$scrollBehavior && function(e) {
83                var t = k(e);
84                if (null == E[t]) {
85                    var o = getComputedStyle(e, "")["scroll-behavior"];
86                    E[t] = "smooth" == o
87                }
88                return E[t]
89            }(e) && (e.$scrollBehavior = e.style.scrollBehavior, e.style.scrollBehavior = "auto");
90            var d = function(n) {
91                for (var r = Date.now(), l = 0, i = 0, c = 0; c < h.length; c++) {
92                    var s = h[c],
93                        f = r - s.start,
94                        m = f >= a.animationTime,
95                        v = m ? 1 : f / a.animationTime;
96                    a.pulseAlgorithm && (v = V(v));
97                    var p = s.x * v - s.lastX >> 0,
98                        y = s.y * v - s.lastY >> 0;
99                    l += p, i += y, s.lastX += p, s.lastY += y, m && (h.splice(c, 1), c--)
100                }
101                u ? window.scrollBy(l, i) : (l && (e.scrollLeft += l), i && (e.scrollTop += i)), t || o || (h = []), h.length ? $(d, e, 1e3 / a.frameRate + 1) : (w = !1, null != e.$scrollBehavior && (e.style.scrollBehavior = e.$scrollBehavior, e.$scrollBehavior = null))
102            };
103            $(d, e, 0), w = !0
104        }
105    }
106
107    function y(t) {
108        c || m();
109        var o = t.target;
110        if (t.defaultPrevented || t.ctrlKey) return !0;
111        if (A(e, "embed") || A(o, "embed") && /\.pdf/i.test(o.src) || A(e, "object") || o.shadowRoot) return !0;
112        var r = -t.wheelDeltaX || t.deltaX || 0,
113            i = -t.wheelDeltaY || t.deltaY || 0;
114        d && (t.wheelDeltaX && N(t.wheelDeltaX, 120) && (r = t.wheelDeltaX / Math.abs(t.wheelDeltaX) * -120), t.wheelDeltaY && N(t.wheelDeltaY, 120) && (i = t.wheelDeltaY / Math.abs(t.wheelDeltaY) * -120)), r || i || (i = -t.wheelDelta || 0), 1 === t.deltaMode && (r *= 40, i *= 40);
115        var s = H(o);
116        return s ? !! function(e) {
117            if (e) {
118                u.length || (u = [e, e, e]), e = Math.abs(e), u.push(e), u.shift(), clearTimeout(n), n = setTimeout((function() {
119                    try {
120                        localStorage.SS_deltaBuffer = u.join(",")
121                    } catch (e) {}
122                }), 1e3);
123                var t = e > 120 && K(e),
124                    o = !K(120) && !K(100) && !t;
125                return e < 50 || o
126            }
127        }(i) || (Math.abs(r) > 1.2 && (r *= a.stepSize / 120), Math.abs(i) > 1.2 && (i *= a.stepSize / 120), p(s, r, i), t.preventDefault(), void T()) : !l || !_ || (Object.defineProperty(t, "target", {
128            value: window.frameElement
129        }), parent.wheel(t))
130    }
131
132    function b(t) {
133        var o = t.target,
134            n = t.ctrlKey || t.altKey || t.metaKey || t.shiftKey && 32 !== t.keyCode;
135        document.body.contains(e) || (e = document.activeElement);
136        var r = /^(button|submit|radio|checkbox|file|color|image)$/i;
137        if (t.defaultPrevented || /^(textarea|select|embed|object)$/i.test(o.nodeName) || A(o, "input") && !r.test(o.type) || A(e, "video") || function(e) {
138                var t = e.target,
139                    o = !1;
140                if (-1 != document.URL.indexOf("www.youtube.com/watch"))
141                    do {
142                        if (o = t.classList && t.classList.contains("html5-video-controls")) break
143                    } while (t = t.parentNode);
144                return o
145            }(t) || o.isContentEditable || n) return !0;
146        if ((A(o, "button") || A(o, "input") && r.test(o.type)) && 32 === t.keyCode) return !0;
147        if (A(o, "input") && "radio" == o.type && f[t.keyCode]) return !0;
148        var i = 0,
149            c = 0,
150            s = H(e);
151        if (!s) return !l || !_ || parent.keydown(t);
152        var u = s.clientHeight;
153        switch (s == document.body && (u = window.innerHeight), t.keyCode) {
154            case 38:
155                c = -a.arrowScroll;
156                break;
157            case 40:
158                c = a.arrowScroll;
159                break;
160            case 32:
161                c = -(t.shiftKey ? 1 : -1) * u * .9;
162                break;
163            case 33:
164                c = .9 * -u;
165                break;
166            case 34:
167                c = .9 * u;
168                break;
169            case 36:
170                s == document.body && document.scrollingElement && (s = document.scrollingElement), c = -s.scrollTop;
171                break;
172            case 35:
173                var d = s.scrollHeight - s.scrollTop - u;
174                c = d > 0 ? d + 10 : 0;
175                break;
176            case 37:
177                i = -a.arrowScroll;
178                break;
179            case 39:
180                i = a.arrowScroll;
181                break;
182            default:
183                return !0
184        }
185        p(s, i, c), t.preventDefault(), T()
186    }
187
188    function g(t) {
189        e = t.target
190    }
191    var S, x, k = (S = 0, function(e) {
192            return e.uniqueID || (e.uniqueID = S++)
193        }),
194        D = {},
195        M = {},
196        E = {};
197
198    function T() {
199        clearTimeout(x), x = setInterval((function() {
200            D = M = E = {}
201        }), 1e3)
202    }
203
204    function B(e, t, o) {
205        for (var n = o ? D : M, r = e.length; r--;) n[k(e[r])] = t;
206        return t
207    }
208
209    function C(e, t) {
210        return (t ? D : M)[k(e)]
211    }
212
213    function H(e) {
214        var t = [],
215            o = document.body,
216            n = s.scrollHeight;
217        do {
218            var r = C(e, !1);
219            if (r) return B(t, r);
220            if (t.push(e), n === e.scrollHeight) {
221                var a = L(s) && L(o) || O(s);
222                if (l && z(s) || !l && a) return B(t, R())
223            } else if (z(e) && O(e)) return B(t, e)
224        } while (e = e.parentElement)
225    }
226
227    function z(e) {
228        return e.clientHeight + 10 < e.scrollHeight
229    }
230
231    function L(e) {
232        return "hidden" !== getComputedStyle(e, "").getPropertyValue("overflow-y")
233    }
234
235    function O(e) {
236        var t = getComputedStyle(e, "").getPropertyValue("overflow-y");
237        return "scroll" === t || "auto" === t
238    }
239
240    function X(e, t, o) {
241        window.addEventListener(e, t, o || !1)
242    }
243
244    function Y(e, t, o) {
245        window.removeEventListener(e, t, o || !1)
246    }
247
248    function A(e, t) {
249        return e && (e.nodeName || "").toLowerCase() === t.toLowerCase()
250    }
251    if (window.localStorage && localStorage.SS_deltaBuffer) try {
252        u = localStorage.SS_deltaBuffer.split(",")
253    } catch (e) {}
254
255    function N(e, t) {
256        return Math.floor(e / t) == e / t
257    }
258
259    function K(e) {
260        return N(u[0], e) && N(u[1], e) && N(u[2], e)
261    }
262    var P, $ = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(e, t, o) {
263            window.setTimeout(e, o || 1e3 / 60)
264        },
265        j = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
266        R = (P = document.scrollingElement, function() {
267            if (!P) {
268                var e = document.createElement("div");
269                e.style.cssText = "height:10000px;width:1px;", document.body.appendChild(e);
270                var t = document.body.scrollTop;
271                document.documentElement.scrollTop, window.scrollBy(0, 3), P = document.body.scrollTop != t ? document.body : document.documentElement, window.scrollBy(0, -3), document.body.removeChild(e)
272            }
273            return P
274        });
275
276    function q(e) {
277        var t, o;
278        return (e *= a.pulseScale) < 1 ? t = e - (1 - Math.exp(-e)) : (e -= 1, t = (o = Math.exp(-1)) + (1 - Math.exp(-e)) * (1 - o)), t * a.pulseNormalize
279    }
280
281    function V(e) {
282        return e >= 1 ? 1 : e <= 0 ? 0 : (1 == a.pulseNormalize && (a.pulseNormalize /= q(1)), q(e))
283    }
284    var F = window.navigator.userAgent,
285        I = /Edge/.test(F),
286        _ = /chrome/i.test(F) && !I,
287        W = /safari/i.test(F) && !I,
288        U = /mobile/i.test(F),
289        G = /Windows NT 6.1/i.test(F) && /rv:11/i.test(F),
290        J = W && (/Version\/8/i.test(F) || /Version\/9/i.test(F)),
291        Q = (_ || W || G) && !U,
292        Z = !1;
293    try {
294        window.addEventListener("test", null, Object.defineProperty({}, "passive", {
295            get: function() {
296                Z = !0
297            }
298        }))
299    } catch (e) {}
300    var ee = !!Z && {
301            passive: !1
302        },
303        te = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel";
304
305    function oe(e) {
306        for (var t in e) r.hasOwnProperty(t) && (a[t] = e[t])
307    }
308    te && Q && (X(te, y, ee), X("mousedown", g), X("load", m)), oe.destroy = function() {
309        t && t.disconnect(), Y(te, y), Y("mousedown", g), Y("keydown", b), Y("resize", o), Y("load", m)
310    }, window.SmoothScrollOptions && oe(window.SmoothScrollOptions), "function" == typeof define && define.amd ? define((function() {
311        return oe
312    })) : "object" == typeof exports ? module.exports = oe : window.SmoothScroll = oe
313}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.