PageSourceSearch

https://mediumpurple-dugong-198112.hostingersite.com/wp-content/th…/assets/js/jquery.paroller.min.js?ver=6.9.9

js mediumpurple-dugong-198112.hostingersite.com collected 2026-10-03 04:40:20 UTC 8,806 bytes, 219 lines download raw bytes

1/**
2 * jQuery plugin paroller.js v1.4.4
3 * https://github.com/tgomilar/paroller.js
4 * preview: https://tgomilar.github.io/paroller/
5 **/
6(function (factory) {
7    'use strict';
8    if (typeof define === 'function' && define.amd) {
9        define('parollerjs', ['jquery'], factory);
10    } else if (typeof module === 'object' && typeof module.exports === 'object') {
11        module.exports = factory(require('jquery'));
12    }
13    else {
14        factory(jQuery);
15    }
16})(function ($) {
17    'use strict';
18
19    var working = false;
20    var scrollAction = function() {
21        working = false;
22    };
23
24    var setDirection = {
25        bgVertical: function (elem, bgOffset) {
26            return elem.css({'background-position': 'center ' + -bgOffset + 'px'});
27        },
28        bgHorizontal: function (elem, bgOffset) {
29            return elem.css({'background-position': -bgOffset + 'px' + ' center'});
30        },
31        vertical: function (elem, elemOffset, oldTransform) {
32            (oldTransform === 'none' ? oldTransform = '' : true);
33            return elem.css({
34                '-webkit-transform': 'translateY(' + elemOffset + 'px)' + oldTransform,
35                '-moz-transform': 'translateY(' + elemOffset + 'px)' + oldTransform,
36                'transform': 'translateY(' + elemOffset + 'px)' + oldTransform,
37                'transition': 'transform linear',
38                'will-change': 'transform'
39            });
40        },
41        horizontal: function (elem, elemOffset, oldTransform) {
42            (oldTransform === 'none' ? oldTransform = '' : true);
43            return elem.css({
44                '-webkit-transform': 'translateX(' + elemOffset + 'px)' + oldTransform,
45                '-moz-transform': 'translateX(' + elemOffset + 'px)' + oldTransform,
46                'transform': 'translateX(' + elemOffset + 'px)' + oldTransform,
47                'transition': 'transform linear',
48                'will-change': 'transform'
49            });
50        }
51    };
52
53    var setMovement = {
54        factor: function (elem, width, options) {
55            var dataFactor = elem.data('paroller-factor');
56            var factor = (dataFactor) ? dataFactor : options.factor;
57            if (width < 576) {
58                var dataFactorXs = elem.data('paroller-factor-xs');
59                var factorXs = (dataFactorXs) ? dataFactorXs : options.factorXs;
60                return (factorXs) ? factorXs : factor;
61            }
62            else if (width <= 768) {
63                var dataFactorSm = elem.data('paroller-factor-sm');
64                var factorSm = (dataFactorSm) ? dataFactorSm : options.factorSm;
65                return (factorSm) ? factorSm : factor;
66            }
67            else if (width <= 1024) {
68                var dataFactorMd = elem.data('paroller-factor-md');
69                var factorMd = (dataFactorMd) ? dataFactorMd : options.factorMd;
70                return (factorMd) ? factorMd : factor;
71            }
72            else if (width <= 1200) {
73                var dataFactorLg = elem.data('paroller-factor-lg');
74                var factorLg = (dataFactorLg) ? dataFactorLg : options.factorLg;
75                return (factorLg) ? factorLg : factor;
76            } else if (width <= 1920) {
77                var dataFactorXl = elem.data('paroller-factor-xl');
78                var factorXl = (dataFactorXl) ? dataFactorXl : options.factorXl;
79                return (factorXl) ? factorXl : factor;
80            } else {
81                return factor;
82            }
83        },
84        bgOffset: function (offset, factor) {
85            return Math.round(offset * factor);
86        },
87        transform: function (offset, factor, windowHeight, height) {
88            return Math.round((offset - (windowHeight / 2) + height) * factor);
89        }
90    };
91
92    var clearPositions = {
93        background: function (elem) {
94            return elem.css({'background-position': 'unset'});
95        },
96        foreground: function (elem) {
97            return elem.css({
98                'transform' : 'unset',
99                'transition' : 'unset'
100            });
101        }
102    };
103
104    $.fn.paroller = function (options) {
105        var windowHeight = $(window).height();
106        var documentHeight = $(document).height();
107
108        // default options
109        var options = $.extend({
110            factor: 0, // - to +
111            factorXs: 0, // - to +
112            factorSm: 0, // - to +
113            factorMd: 0, // - to +
114            factorLg: 0, // - to +
115            factorXl: 0, // - to +
116            type: 'background', // foreground
117            direction: 'vertical' // horizontal
118        }, options);
119
120        return this.each(function () {
121            var $this = $(this);
122            var width = $(window).width();
123            var offset = $this.offset().top;
124            var height = $this.outerHeight();
125
126            var dataType = $this.data('paroller-type');
127            var dataDirection = $this.data('paroller-direction');
128            var oldTransform = $this.css('transform');
129
130            var type = (dataType) ? dataType : options.type;
131            var direction = (dataDirection) ? dataDirection : options.direction;
132            var factor = setMovement.factor($this, width, options);
133            var bgOffset = setMovement.bgOffset(offset, factor);
134            var transform = setMovement.transform(offset, factor, windowHeight, height);
135
136            if (type === 'background') {
137                if (direction === 'vertical') {
138                    setDirection.bgVertical($this, bgOffset);
139                }
140                else if (direction === 'horizontal') {
141                    setDirection.bgHorizontal($this, bgOffset);
142                }
143            }
144            else if (type === 'foreground') {
145                if (direction === 'vertical') {
146                    setDirection.vertical($this, transform, oldTransform);
147                }
148                else if (direction === 'horizontal') {
149                    setDirection.horizontal($this, transform, oldTransform);
150                }
151            }
152
153            $(window).on('resize', function () {
154                var scrolling = $(this).scrollTop();
155                width = $(window).width();
156                offset = $this.offset().top;
157                height = $this.outerHeight();
158                factor = setMovement.factor($this, width, options);
159
160                bgOffset = Math.round(offset * factor);
161                transform = Math.round((offset - (windowHeight / 2) + height) * factor);
162
163                if (! working) {
164                    window.requestAnimationFrame(scrollAction);
165                    working = true;
166                }
167
168                if (type === 'background') {
169                    clearPositions.background($this);
170                    if (direction === 'vertical') {
171                        setDirection.bgVertical($this, bgOffset);
172                    }
173                    else if (direction === 'horizontal') {
174                        setDirection.bgHorizontal($this, bgOffset);
175                    }
176                }
177                else if ((type === 'foreground') && (scrolling <= documentHeight)) {
178                    clearPositions.foreground($this);
179                    if (direction === 'vertical') {
180                        setDirection.vertical($this, transform);
181                    }
182                    else if (direction === 'horizontal') {
183                        setDirection.horizontal($this, transform);
184                    }
185                }
186            });
187
188            $(window).on('scroll', function () {
189                var scrolling = $(this).scrollTop();
190                documentHeight = $(document).height();
191
192                bgOffset = Math.round((offset - scrolling) * factor);
193                transform = Math.round(((offset - (windowHeight / 2) + height) - scrolling) * factor);
194
195                if (! working) {
196                    window.requestAnimationFrame(scrollAction);
197                    working = true;
198                }
199
200                if (type === 'background') {
201                    if (direction === 'vertical') {
202                        setDirection.bgVertical($this, bgOffset);
203                    }
204                    else if (direction === 'horizontal') {
205                        setDirection.bgHorizontal($this, bgOffset);
206                    }
207                }
208                else if ((type === 'foreground') && (scrolling <= documentHeight)) {
209                    if (direction === 'vertical') {
210                        setDirection.vertical($this, transform, oldTransform);
211                    }
212                    else if (direction === 'horizontal') {
213                        setDirection.horizontal($this, transform, oldTransform);
214                    }
215                }
216            });
217        });
218    };
219});

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.