PageSourceSearch

http://gioacchinopassini.com/js/newIndex2021/skrollr.min.js

js gioacchinopassini.com collected 2026-10-07 00:06:11 UTC 22,601 bytes, 650 lines download raw bytes

vendor: 22,601 bytes, lines 1-650
1/*! skrollr 0.6.26 (2014-06-08) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */
2(function(e, t, r) {
3    "use strict";
4    function n(r) {
5        if (o = t.documentElement, a = t.body, K(), it = this, r = r || {},
6        ut = r.constants || {},
7        r.easing) for (var n in r.easing) U[n] = r.easing[n];
8        yt = r.edgeStrategy || "set",
9        ct = {
10            beforerender: r.beforerender,
11            render: r.render,
12            keyframe: r.keyframe
13        },
14        ft = r.forceHeight !== !1,
15        ft && (Vt = r.scale || 1),
16        mt = r.mobilesDeceleration || x,
17        dt = r.smoothScrolling !== !1,
18        gt = r.smoothScrollingDuration || E,
19        vt = {
20            targetTop: it.getScrollTop()
21        },
22        Gt = (r.mobilesCheck ||
23        function() {
24            return /androids|iphoness|ipads|ipods|BlackBerry/i.test(navigator.userAgent || navigator.vendor || e.opera)
25        })(),
26        Gt ? (st = t.getElementById("skrollr-body"), st && at(), X(), Dt(o, [y, S], [T])) : Dt(o, [y, b], [T]),
27        it.refresh(),
28        St(e, "resize orientationchange",
29        function() {
30            var e = o.clientWidth,
31            t = o.clientHeight; (t !== $t || e !== Mt) && ($t = t, Mt = e, _t = !0)
32        });
33        var i = Y();
34        return function l() {
35            Z(),
36            bt = i(l)
37        } (),
38        it
39    }
40    var o, a, i = {
41        get: function() {
42            return it
43        },
44        init: function(e) {
45            return it || new n(e)
46        },
47        VERSION: "0.6.26"
48    },
49    l = Object.prototype.hasOwnProperty,
50    s = e.Math,
51    c = e.getComputedStyle,
52    f = "touchstart",
53    u = "touchmove",
54    m = "touchcancel",
55    p = "touchend",
56    d = "skrollable",
57    g = d + "-before",
58    v = d + "-between",
59    h = d + "-after",
60    y = "skrollr",
61    T = "no-" + y,
62    b = y + "-desktop",
63    S = y + "-mobiles",
64    k = "linear",
65    w = 1e3,
66    x = .004,
67    E = 200,
68    A = "start",
69    F = "end",
70    C = "center",
71    D = "bottom",
72    H = "___skrollable_id",
73    I = /^(?:input|textarea|button|select)$/i,
74    P = /^\s+|\s+$/g,
75    N = /^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/,
76    O = /\s*(@?[\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi,
77    V = /^(@?[a-z\-]+)\[(\w+)\]$/,
78    z = /-([a-z0-9_])/g,
79    q = function(e, t) {
80        return t.toUpperCase()
81    },
82    L = /[\-+]?[\d]*\.?[\d]+/g,
83    M = /\{\?\}/g,
84    $ = /rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g,
85    _ = /[a-z\-]+-gradient/g,
86    B = "",
87    G = "",
88    K = function() {
89        var e = /^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;
90        if (c) {
91            var t = c(a, null);
92            for (var n in t) if (B = n.match(e) || +n == n && t[n].match(e)) break;
93            if (!B) return B = G = "",
94            r;
95            B = B[0],
96            "-" === B.slice(0, 1) ? (G = B, B = {
97                "-webkit-": "webkit",
98                "-moz-": "Moz",
99                "-ms-": "ms",
100                "-o-": "O"
101            } [B]) : G = "-" + B.toLowerCase() + "-"
102        }
103    },
104    Y = function() {
105        var t = e.requestAnimationFrame || e[B.toLowerCase() + "RequestAnimationFrame"],
106        r = Pt();
107        return (Gt || !t) && (t = function(t) {
108            var n = Pt() - r,
109            o = s.max(0, 1e3 / 60 - n);
110            return e.setTimeout(function() {
111                r = Pt(),
112                t()
113            },
114            o)
115        }),
116        t
117    },
118    R = function() {
119        var t = e.cancelAnimationFrame || e[B.toLowerCase() + "CancelAnimationFrame"];
120        return (Gt || !t) && (t = function(t) {
121            return e.clearTimeout(t)
122        }),
123        t
124    },
125    U = {
126        begin: function() {
127            return 0
128        },
129        end: function() {
130            return 1
131        },
132        linear: function(e) {
133            return e
134        },
135        quadratic: function(e) {
136            return e * e
137        },
138        cubic: function(e) {
139            return e * e * e
140        },
141        swing: function(e) {
142            return - s.cos(e * s.PI) / 2 + .5
143        },
144        sqrt: function(e) {
145            return s.sqrt(e)
146        },
147        outCubic: function(e) {
148            return s.pow(e - 1, 3) + 1
149        },
150        bounce: function(e) {
151            var t;
152            if (.5083 >= e) t = 3;
153            else if (.8489 >= e) t = 9;
154            else if (.96208 >= e) t = 27;
155            else {
156                if (! (.99981 >= e)) return 1;
157                t = 91
158            }
159            return 1 - s.abs(3 * s.cos(1.028 * e * t) / t)
160        }
161    };
162    n.prototype.refresh = function(e) {
163        var n, o, a = !1;
164        for (e === r ? (a = !0, lt = [], Bt = 0, e = t.getElementsByTagName("*")) : e.length === r && (e = [e]), n = 0, o = e.length; o > n; n++) {
165            var i = e[n],
166            l = i,
167            s = [],
168            c = dt,
169            f = yt,
170            u = !1;
171            if (a && H in i && delete i[H], i.attributes) {
172                for (var m = 0,
173                p = i.attributes.length; p > m; m++) {
174                    var g = i.attributes[m];
175                    if ("data-anchor-target" !== g.name) if ("data-smooth-scrolling" !== g.name) if ("data-edge-strategy" !== g.name) if ("data-emit-events" !== g.name) {
176                        var v = g.name.match(N);
177                        if (null !== v) {
178                            var h = {
179                                props: g.value,
180                                element: i,
181                                eventType: g.name.replace(z, q)
182                            };
183                            s.push(h);
184                            var y = v[1];
185                            y && (h.constant = y.substr(1));
186                            var T = v[2];
187                            /p$/.test(T) ? (h.isPercentage = !0, h.offset = (0 | T.slice(0, -1)) / 100) : h.offset = 0 | T;
188                            var b = v[3],
189                            S = v[4] || b;
190                            b && b !== A && b !== F ? (h.mode = "relative", h.anchors = [b, S]) : (h.mode = "absolute", b === F ? h.isEnd = !0 : h.isPercentage || (h.offset = h.offset * Vt))
191                        }
192                    } else u = !0;
193                    else f = g.value;
194                    else c = "off" !== g.value;
195                    else if (l = t.querySelector(g.value), null === l) throw 'Unable to find anchor target "' + g.value + '"'
196                }
197                if (s.length) {
198                    var k, w, x; ! a && H in i ? (x = i[H], k = lt[x].styleAttr, w = lt[x].classAttr) : (x = i[H] = Bt++, k = i.style.cssText, w = Ct(i)),
199                    lt[x] = {
200                        element: i,
201                        styleAttr: k,
202                        classAttr: w,
203                        anchorTarget: l,
204                        keyFrames: s,
205                        smoothScrolling: c,
206                        edgeStrategy: f,
207                        emitEvents: u,
208                        lastFrameIndex: -1
209                    },
210                    Dt(i, [d], [])
211                }
212            }
213        }
214        for (Et(), n = 0, o = e.length; o > n; n++) {
215            var E = lt[e[n][H]];
216            E !== r && (J(E), et(E))
217        }
218        return it
219    },
220    n.prototype.relativeToAbsolute = function(e, t, r) {
221        var n = o.clientHeight,
222        a = e.getBoundingClientRect(),
223        i = a.top,
224        l = a.bottom - a.top;
225        return t === D ? i -= n: t === C && (i -= n / 2),
226        r === D ? i += l: r === C && (i += l / 2),
227        i += it.getScrollTop(),
228        0 | i + .5
229    },
230    n.prototype.animateTo = function(e, t) {
231        t = t || {};
232        var n = Pt(),
233        o = it.getScrollTop();
234        return pt = {
235            startTop: o,
236            topDiff: e - o,
237            targetTop: e,
238            duration: t.duration || w,
239            startTime: n,
240            endTime: n + (t.duration || w),
241            easing: U[t.easing || k],
242            done: t.done
243        },
244        pt.topDiff || (pt.done && pt.done.call(it, !1), pt = r),
245        it
246    },
247    n.prototype.stopAnimateTo = function() {
248        pt && pt.done && pt.done.call(it, !0),
249        pt = r
250    },
251    n.prototype.isAnimatingTo = function() {
252        return !! pt
253    },
254    n.prototype.ismobiles = function() {
255        return Gt
256    },
257    n.prototype.setScrollTop = function(t, r) {
258        return ht = r === !0,
259        Gt ? Kt = s.min(s.max(t, 0), Ot) : e.scrollTo(0, t),
260        it
261    },
262    n.prototype.getScrollTop = function() {
263        return Gt ? Kt: e.pageYOffset || o.scrollTop || a.scrollTop || 0
264    },
265    n.prototype.getMaxScrollTop = function() {
266        return Ot
267    },
268    n.prototype.on = function(e, t) {
269        return ct[e] = t,
270        it
271    },
272    n.prototype.off = function(e) {
273        return delete ct[e],
274        it
275    },
276    n.prototype.destroy = function() {
277        var e = R();
278        e(bt),
279        wt(),
280        Dt(o, [T], [y, b, S]);
281        for (var t = 0,
282        n = lt.length; n > t; t++) ot(lt[t].element);
283        o.style.overflow = a.style.overflow = "",
284        o.style.height = a.style.height = "",
285        st && i.setStyle(st, "transform", "none"),
286        it = r,
287        st = r,
288        ct = r,
289        ft = r,
290        Ot = 0,
291        Vt = 1,
292        ut = r,
293        mt = r,
294        zt = "down",
295        qt = -1,
296        Mt = 0,
297        $t = 0,
298        _t = !1,
299        pt = r,
300        dt = r,
301        gt = r,
302        vt = r,
303        ht = r,
304        Bt = 0,
305        yt = r,
306        Gt = !1,
307        Kt = 0,
308        Tt = r
309    };
310    var X = function() {
311        var n, i, l, c, d, g, v, h, y, T, b, S;
312        St(o, [f, u, m, p].join(" "),
313        function(e) {
314            var o = e.changedTouches[0];
315            for (c = e.target; 3 === c.nodeType;) c = c.parentNode;
316            switch (d = o.clientY, g = o.clientX, T = e.timeStamp, I.test(c.tagName) || e.preventDefault(), e.type) {
317            case f:
318                n && n.blur(),
319                it.stopAnimateTo(),
320                n = c,
321                i = v = d,
322                l = g,
323                y = T;
324                break;
325            case u:
326                I.test(c.tagName) && t.activeElement !== c && e.preventDefault(),
327                h = d - v,
328                S = T - b,
329                it.setScrollTop(Kt - h, !0),
330                v = d,
331                b = T;
332                break;
333            default:
334            case m:
335            case p:
336                var a = i - d,
337                k = l - g,
338                w = k * k + a * a;
339                if (49 > w) {
340                    if (!I.test(n.tagName)) {
341                        n.focus();
342                        var x = t.createEvent("MouseEvents");
343                        x.initMouseEvent("click", !0, !0, e.view, 1, o.screenX, o.screenY, o.clientX, o.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null),
344                        n.dispatchEvent(x)
345                    }
346                    return
347                }
348                n = r;
349                var E = h / S;
350                E = s.max(s.min(E, 3), -3);
351                var A = s.abs(E / mt),
352                F = E * A + .5 * mt * A * A,
353                C = it.getScrollTop() - F,
354                D = 0;
355                C > Ot ? (D = (Ot - C) / F, C = Ot) : 0 > C && (D = -C / F, C = 0),
356                A *= 1 - D,
357                it.animateTo(0 | C + .5, {
358                    easing: "outCubic",
359                    duration: A
360                })
361            }
362        }),
363        e.scrollTo(0, 0),
364        o.style.overflowX = a.style.overflowX = "hidden"
365    },
366    j = function() {
367        var e, t, r, n, a, i, l, c, f, u, m, p = o.clientHeight,
368        d = At();
369        for (c = 0, f = lt.length; f > c; c++) for (e = lt[c], t = e.element, r = e.anchorTarget, n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a],
370        u = l.offset,
371        m = d[l.constant] || 0,
372        l.frame = u,
373        l.isPercentage && (u *= p, l.frame = u),
374        "relative" === l.mode && (ot(t), l.frame = it.relativeToAbsolute(r, l.anchors[0], l.anchors[1]) - u, ot(t, !0)),
375        l.frame += m,
376        ft && !l.isEnd && l.frame > Ot && (Ot = l.frame);
377        for (Ot = s.max(Ot, Ft()), c = 0, f = lt.length; f > c; c++) {
378            for (e = lt[c], n = e.keyFrames, a = 0, i = n.length; i > a; a++) l = n[a],
379            m = d[l.constant] || 0,
380            l.isEnd && (l.frame = Ot - l.offset + m);
381            e.keyFrames.sort(Nt)
382        }
383    },
384    W = function(e, t) {
385        for (var r = 0,
386        n = lt.length; n > r; r++) {
387            var o, a, s = lt[r],
388            c = s.element,
389            f = s.smoothScrolling ? e: t,
390            u = s.keyFrames,
391            m = u.length,
392            p = u[0],
393            y = u[u.length - 1],
394            T = p.frame > f,
395            b = f > y.frame,
396            S = T ? p: y,
397            k = s.emitEvents,
398            w = s.lastFrameIndex;
399            if (T || b) {
400                if (T && -1 === s.edge || b && 1 === s.edge) continue;
401                switch (T ? (Dt(c, [g], [h, v]), k && w > -1 && (xt(c, p.eventType, zt), s.lastFrameIndex = -1)) : (Dt(c, [h], [g, v]), k && m > w && (xt(c, y.eventType, zt), s.lastFrameIndex = m)), s.edge = T ? -1 : 1, s.edgeStrategy) {
402                case "reset":
403                    ot(c);
404                    continue;
405                case "ease":
406                    f = S.frame;
407                    break;
408                default:
409                case "set":
410                    var x = S.props;
411                    for (o in x) l.call(x, o) && (a = nt(x[o].value), 0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a));
412                    continue
413                }
414            } else 0 !== s.edge && (Dt(c, [d, v], [g, h]), s.edge = 0);
415            for (var E = 0; m - 1 > E; E++) if (f >= u[E].frame && u[E + 1].frame >= f) {
416                var A = u[E],
417                F = u[E + 1];
418                for (o in A.props) if (l.call(A.props, o)) {
419                    var C = (f - A.frame) / (F.frame - A.frame);
420                    C = A.props[o].easing(C),
421                    a = rt(A.props[o].value, F.props[o].value, C),
422                    a = nt(a),
423                    0 === o.indexOf("@") ? c.setAttribute(o.substr(1), a) : i.setStyle(c, o, a)
424                }
425                k && w !== E && ("down" === zt ? xt(c, A.eventType, zt) : xt(c, F.eventType, zt), s.lastFrameIndex = E);
426                break
427            }
428        }
429    },
430    Z = function() {
431        _t && (_t = !1, Et());
432        var e, t, n = it.getScrollTop(),
433        o = Pt();
434        if (pt) o >= pt.endTime ? (n = pt.targetTop, e = pt.done, pt = r) : (t = pt.easing((o - pt.startTime) / pt.duration), n = 0 | pt.startTop + t * pt.topDiff),
435        it.setScrollTop(n, !0);
436        else if (!ht) {
437            var a = vt.targetTop - n;
438            a && (vt = {
439                startTop: qt,
440                topDiff: n - qt,
441                targetTop: n,
442                startTime: Lt,
443                endTime: Lt + gt
444            }),
445            vt.endTime >= o && (t = U.sqrt((o - vt.startTime) / gt), n = 0 | vt.startTop + t * vt.topDiff)
446        }
447        if (Gt && st && i.setStyle(st, "transform", "translate(0, " + -Kt + "px) " + Tt), ht || qt !== n) {
448            zt = n > qt ? "down": qt > n ? "up": zt,
449            ht = !1;
450            var l = {
451                curTop: n,
452                lastTop: qt,
453                maxTop: Ot,
454                direction: zt
455            },
456            s = ct.beforerender && ct.beforerender.call(it, l);
457            s !== !1 && (W(n, it.getScrollTop()), qt = n, ct.render && ct.render.call(it, l)),
458            e && e.call(it, !1)
459        }
460        Lt = o
461    },
462    J = function(e) {
463        for (var t = 0,
464        r = e.keyFrames.length; r > t; t++) {
465            for (var n, o, a, i, l = e.keyFrames[t], s = {}; null !== (i = O.exec(l.props));) a = i[1],
466            o = i[2],
467            n = a.match(V),
468            null !== n ? (a = n[1], n = n[2]) : n = k,
469            o = o.indexOf("!") ? Q(o) : [o.slice(1)],
470            s[a] = {
471                value: o,
472                easing: U[n]
473            };
474            l.props = s
475        }
476    },
477    Q = function(e) {
478        var t = [];
479        return $.lastIndex = 0,
480        e = e.replace($,
481        function(e) {
482            return e.replace(L,
483            function(e) {
484                return 100 * (e / 255) + "%"
485            })
486        }),
487        G && (_.lastIndex = 0, e = e.replace(_,
488        function(e) {
489            return G + e
490        })),
491        e = e.replace(L,
492        function(e) {
493            return t.push( + e),
494            "{?}"
495        }),
496        t.unshift(e),
497        t
498    },
499    et = function(e) {
500        var t, r, n = {};
501        for (t = 0, r = e.keyFrames.length; r > t; t++) tt(e.keyFrames[t], n);
502        for (n = {},
503        t = e.keyFrames.length - 1; t >= 0; t--) tt(e.keyFrames[t], n)
504    },
505    tt = function(e, t) {
506        var r;
507        for (r in t) l.call(e.props, r) || (e.props[r] = t[r]);
508        for (r in e.props) t[r] = e.props[r]
509    },
510    rt = function(e, t, r) {
511        var n, o = e.length;
512        if (o !== t.length) throw "Can't interpolate between \"" + e[0] + '" and "' + t[0] + '"';
513        var a = [e[0]];
514        for (n = 1; o > n; n++) a[n] = e[n] + (t[n] - e[n]) * r;
515        return a
516    },
517    nt = function(e) {
518        var t = 1;
519        return M.lastIndex = 0,
520        e[0].replace(M,
521        function() {
522            return e[t++]
523        })
524    },
525    ot = function(e, t) {
526        e = [].concat(e);
527        for (var r, n, o = 0,
528        a = e.length; a > o; o++) n = e[o],
529        r = lt[n[H]],
530        r && (t ? (n.style.cssText = r.dirtyStyleAttr, Dt(n, r.dirtyClassAttr)) : (r.dirtyStyleAttr = n.style.cssText, r.dirtyClassAttr = Ct(n), n.style.cssText = r.styleAttr, Dt(n, r.classAttr)))
531    },
532    at = function() {
533        Tt = "translateZ(0)",
534        i.setStyle(st, "transform", Tt);
535        var e = c(st),
536        t = e.getPropertyValue("transform"),
537        r = e.getPropertyValue(G + "transform"),
538        n = t && "none" !== t || r && "none" !== r;
539        n || (Tt = "")
540    };
541    i.setStyle = function(e, t, r) {
542        var n = e.style;
543        if (t = t.replace(z, q).replace("-", ""), "zIndex" === t) n[t] = isNaN(r) ? r: "" + (0 | r);
544        else if ("float" === t) n.styleFloat = n.cssFloat = r;
545        else try {
546            B && (n[B + t.slice(0, 1).toUpperCase() + t.slice(1)] = r),
547            n[t] = r
548        } catch(o) {}
549    };
550    var it, lt, st, ct, ft, ut, mt, pt, dt, gt, vt, ht, yt, Tt, bt, St = i.addEvent = function(t, r, n) {
551        var o = function(t) {
552            return t = t || e.event,
553            t.target || (t.target = t.srcElement),
554            t.preventDefault || (t.preventDefault = function() {
555                t.returnValue = !1,
556                t.defaultPrevented = !0
557            }),
558            n.call(this, t)
559        };
560        r = r.split(" ");
561        for (var a, i = 0,
562        l = r.length; l > i; i++) a = r[i],
563        t.addEventListener ? t.addEventListener(a, n, !1) : t.attachEvent("on" + a, o),
564        Yt.push({
565            element: t,
566            name: a,
567            listener: n
568        })
569    },
570    kt = i.removeEvent = function(e, t, r) {
571        t = t.split(" ");
572        for (var n = 0,
573        o = t.length; o > n; n++) e.removeEventListener ? e.removeEventListener(t[n], r, !1) : e.detachEvent("on" + t[n], r)
574    },
575    wt = function() {
576        for (var e, t = 0,
577        r = Yt.length; r > t; t++) e = Yt[t],
578        kt(e.element, e.name, e.listener);
579        Yt = []
580    },
581    xt = function(e, t, r) {
582        ct.keyframe && ct.keyframe.call(it, e, t, r)
583    },
584    Et = function() {
585        var e = it.getScrollTop();
586        Ot = 0,
587        ft && !Gt && (a.style.height = ""),
588        j(),
589        ft && !Gt && (a.style.height = Ot + o.clientHeight + "px"),
590        Gt ? it.setScrollTop(s.min(it.getScrollTop(), Ot)) : it.setScrollTop(e, !0),
591        ht = !0
592    },
593    At = function() {
594        var e, t, r = o.clientHeight,
595        n = {};
596        for (e in ut) t = ut[e],
597        "function" == typeof t ? t = t.call(it) : /p$/.test(t) && (t = t.slice(0, -1) / 100 * r),
598        n[e] = t;
599        return n
600    },
601    Ft = function() {
602        var e = st && st.offsetHeight || 0,
603        t = s.max(e, a.scrollHeight, a.offsetHeight, o.scrollHeight, o.offsetHeight, o.clientHeight);
604        return t - o.clientHeight
605    },
606    Ct = function(t) {
607        var r = "className";
608        return e.SVGElement && t instanceof e.SVGElement && (t = t[r], r = "baseVal"),
609        t[r]
610    },
611    Dt = function(t, n, o) {
612        var a = "className";
613        if (e.SVGElement && t instanceof e.SVGElement && (t = t[a], a = "baseVal"), o === r) return t[a] = n,
614        r;
615        for (var i = t[a], l = 0, s = o.length; s > l; l++) i = It(i).replace(It(o[l]), " ");
616        i = Ht(i);
617        for (var c = 0,
618        f = n.length; f > c; c++) - 1 === It(i).indexOf(It(n[c])) && (i += " " + n[c]);
619        t[a] = Ht(i)
620    },
621    Ht = function(e) {
622        return e.replace(P, "")
623    },
624    It = function(e) {
625        return " " + e + " "
626    },
627    Pt = Date.now ||
628    function() {
629        return + new Date
630    },
631    Nt = function(e, t) {
632        return e.frame - t.frame
633    },
634    Ot = 0,
635    Vt = 1,
636    zt = "down",
637    qt = -1,
638    Lt = Pt(),
639    Mt = 0,
640    $t = 0,
641    _t = !1,
642    Bt = 0,
643    Gt = !1,
644    Kt = 0,
645    Yt = [];
646    "function" == typeof define && define.amd ? define("skrollr",
647    function() {
648        return i
649    }) : "undefined" != typeof module && module.exports ? module.exports = i: e.skrollr = i
650})(window, document);

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.