PageSourceSearch

https://www.adngad.net/assets/js/jquery.easeScroll.js

js adngad.net collected 2026-10-02 20:13:34 UTC 8,794 bytes, 338 lines download raw bytes

1$.fn.easeScroll = function(options) {
2  !(function() {
3    function e() {
4      var e = !1;
5      e && c("keydown", r), v.keyboardSupport && !e && u("keydown", r);
6    }
7
8    function t() {
9      if (document.body) {
10        var t = document.body,
11          o = document.documentElement,
12          n = window.innerHeight,
13          r = t.scrollHeight;
14        if (
15          ((S = document.compatMode.indexOf("CSS") >= 0 ? o : t),
16          (w = t),
17          e(),
18          (x = !0),
19          top != self)
20        )
21          y = !0;
22        else if (r > n && (t.offsetHeight <= n || o.offsetHeight <= n)) {
23          var a = !1,
24            i = function() {
25              a ||
26                o.scrollHeight == document.height ||
27                ((a = !0),
28                setTimeout(function() {
29                  (o.style.height = document.height + "px"), (a = !1);
30                }, 100));
31            };
32          if (
33            ((o.style.height = "auto"), setTimeout(i, 10), S.offsetHeight <= n)
34          ) {
35            var l = document.createElement("div");
36            (l.style.clear = "both"), t.appendChild(l);
37          }
38        }
39        v.fixedBackground ||
40          b ||
41          ((t.style.backgroundAttachment = "scroll"),
42          (o.style.backgroundAttachment = "scroll"));
43      }
44    }
45
46    function o(e, t, o, n) {
47      if ((n || (n = 1e3), d(t, o), 1 != v.accelerationMax)) {
48        var r = +new Date(),
49          a = r - C;
50        if (a < v.accelerationDelta) {
51          var i = (1 + 30 / a) / 2;
52          i > 1 && ((i = Math.min(i, v.accelerationMax)), (t *= i), (o *= i));
53        }
54        C = +new Date();
55      }
56      if (
57        (M.push({
58          x: t,
59          y: o,
60          lastX: 0 > t ? 0.99 : -0.99,
61          lastY: 0 > o ? 0.99 : -0.99,
62          start: +new Date()
63        }),
64        !T)
65      ) {
66        var l = e === document.body,
67          u = function() {
68            for (var r = +new Date(), a = 0, i = 0, c = 0; c < M.length; c++) {
69              var s = M[c],
70                d = r - s.start,
71                f = d >= v.animationTime,
72                h = f ? 1 : d / v.animationTime;
73              v.pulseAlgorithm && (h = p(h));
74              var m = (s.x * h - s.lastX) >> 0,
75                w = (s.y * h - s.lastY) >> 0;
76              (a += m),
77                (i += w),
78                (s.lastX += m),
79                (s.lastY += w),
80                f && (M.splice(c, 1), c--);
81            }
82            l
83              ? window.scrollBy(a, i)
84              : (a && (e.scrollLeft += a), i && (e.scrollTop += i)),
85              t || o || (M = []),
86              M.length ? E(u, e, n / v.frameRate + 1) : (T = !1);
87          };
88        E(u, e, 0), (T = !0);
89      }
90    }
91
92    function n(e) {
93      x || t();
94      var n = e.target,
95        r = l(n);
96      if (
97        !r ||
98        e.defaultPrevented ||
99        s(w, "embed") ||
100        (s(n, "embed") && /\.pdf/i.test(n.src))
101      )
102        return !0;
103      var a = e.wheelDeltaX || 0,
104        i = e.wheelDeltaY || 0;
105      return (
106        a || i || (i = e.wheelDelta || 0),
107        !v.touchpadSupport && f(i)
108          ? !0
109          : (Math.abs(a) > 1.2 && (a *= v.stepSize / 120),
110            Math.abs(i) > 1.2 && (i *= v.stepSize / 120),
111            o(r, -a, -i),
112            void e.preventDefault())
113      );
114    }
115
116    function r(e) {
117      var t = e.target,
118        n =
119          e.ctrlKey ||
120          e.altKey ||
121          e.metaKey ||
122          (e.shiftKey && e.keyCode !== H.spacebar);
123      if (
124        /input|textarea|select|embed/i.test(t.nodeName) ||
125        t.isContentEditable ||
126        e.defaultPrevented ||
127        n
128      )
129        return !0;
130      if (s(t, "button") && e.keyCode === H.spacebar) return !0;
131      var r,
132        a = 0,
133        i = 0,
134        u = l(w),
135        c = u.clientHeight;
136      switch ((u == document.body && (c = window.innerHeight), e.keyCode)) {
137        case H.up:
138          i = -v.arrowScroll;
139          break;
140        case H.down:
141          i = v.arrowScroll;
142          break;
143        case H.spacebar:
144          (r = e.shiftKey ? 1 : -1), (i = -r * c * 0.9);
145          break;
146        case H.pageup:
147          i = 0.9 * -c;
148          break;
149        case H.pagedown:
150          i = 0.9 * c;
151          break;
152        case H.home:
153          i = -u.scrollTop;
154          break;
155        case H.end:
156          var d = u.scrollHeight - u.scrollTop - c;
157          i = d > 0 ? d + 10 : 0;
158          break;
159        case H.left:
160          a = -v.arrowScroll;
161          break;
162        case H.right:
163          a = v.arrowScroll;
164          break;
165        default:
166          return !0;
167      }
168      o(u, a, i), e.preventDefault();
169    }
170
171    function a(e) {
172      w = e.target;
173    }
174
175    function i(e, t) {
176      for (var o = e.length; o--; ) z[N(e[o])] = t;
177      return t;
178    }
179
180    function l(e) {
181      var t = [],
182        o = S.scrollHeight;
183      do {
184        var n = z[N(e)];
185        if (n) return i(t, n);
186        if ((t.push(e), o === e.scrollHeight)) {
187          if (!y || S.clientHeight + 10 < o) return i(t, document.body);
188        } else if (
189          e.clientHeight + 10 < e.scrollHeight &&
190          ((overflow = getComputedStyle(e, "").getPropertyValue("overflow-y")),
191          "scroll" === overflow || "auto" === overflow)
192        )
193          return i(t, e);
194      } while ((e = e.parentNode));
195    }
196
197    function u(e, t, o) {
198      window.addEventListener(e, t, o || !1);
199    }
200
201    function c(e, t, o) {
202      window.removeEventListener(e, t, o || !1);
203    }
204
205    function s(e, t) {
206      return (e.nodeName || "").toLowerCase() === t.toLowerCase();
207    }
208
209    function d(e, t) {
210      (e = e > 0 ? 1 : -1),
211        (t = t > 0 ? 1 : -1),
212        (k.x !== e || k.y !== t) && ((k.x = e), (k.y = t), (M = []), (C = 0));
213    }
214
215    function f(e) {
216      if (e) {
217        (e = Math.abs(e)), D.push(e), D.shift(), clearTimeout(A);
218        var t = D[0] == D[1] && D[1] == D[2],
219          o = h(D[0], 120) && h(D[1], 120) && h(D[2], 120);
220        return !(t || o);
221      }
222    }
223
224    function h(e, t) {
225      return Math.floor(e / t) == e / t;
226    }
227
228    function m(e) {
229      var t, o, n;
230      return (
231        (e *= v.pulseScale),
232        1 > e
233          ? (t = e - (1 - Math.exp(-e)))
234          : ((o = Math.exp(-1)),
235            (e -= 1),
236            (n = 1 - Math.exp(-e)),
237            (t = o + n * (1 - o))),
238        t * v.pulseNormalize
239      );
240    }
241
242    function p(e) {
243      return e >= 1
244        ? 1
245        : 0 >= e
246        ? 0
247        : (1 == v.pulseNormalize && (v.pulseNormalize /= m(1)), m(e));
248    }
249
250    var settings = $.extend(
251      {
252        // These are the defaults.
253        frameRate: 60,
254        animationTime: 1000,
255        stepSize: 120,
256        pulseAlgorithm: !0,
257        pulseScale: 8,
258        pulseNormalize: 1,
259        accelerationDelta: 20,
260        accelerationMax: 1,
261        keyboardSupport: !0,
262        arrowScroll: 50,
263        touchpadSupport: !0,
264        fixedBackground: !0
265      },
266      options
267    );
268
269    var w,
270      g = {
271        frameRate: settings.frameRate,
272        animationTime: settings.animationTime,
273        stepSize: settings.stepSize,
274        pulseAlgorithm: settings.pulseAlgorithm,
275        pulseScale: settings.pulseScale,
276        pulseNormalize: settings.pulseNormalize,
277        accelerationDelta: settings.accelerationDelta,
278        accelerationMax: settings.accelerationMax,
279        keyboardSupport: settings.keyboardSupport,
280        arrowScroll: settings.arrowScroll,
281        touchpadSupport: settings.touchpadSupport,
282        fixedBackground: settings.fixedBackground,
283        excluded: ""
284      },
285      v = g,
286      b = !1,
287      y = !1,
288      k = {
289        x: 0,
290        y: 0
291      },
292      x = !1,
293      S = document.documentElement,
294      D = [120, 120, 120],
295      H = {
296        left: 37,
297        up: 38,
298        right: 39,
299        down: 40,
300        spacebar: 32,
301        pageup: 33,
302        pagedown: 34,
303        end: 35,
304        home: 36
305      },
306      v = g,
307      M = [],
308      T = !1,
309      C = +new Date(),
310      z = {};
311    setInterval(function() {
312      z = {};
313    }, 1e4);
314    var A,
315      N = (function() {
316        var e = 0;
317        return function(t) {
318          return t.uniqueID || (t.uniqueID = e++);
319        };
320      })(),
321      E = (function() {
322        return (
323          window.requestAnimationFrame ||
324          window.webkitRequestAnimationFrame ||
325          function(e, t, o) {
326            window.setTimeout(e, o || 1e3 / 60);
327          }
328        );
329      })(),
330      K = /chrome|iPad/i.test(window.navigator.userAgent),
331      L = "onmousewheel" in document;
332    L &&
333      K &&
334      (u("mousedown", a, { passive: false }),
335      u("mousewheel", n, { passive: false }),
336      u("load", t, { passive: false }));
337  })();
338};

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.