PageSourceSearch

https://www.teniscostatropical.com/layouts/xet_agency/js/plugins/jquery.paroller.js?t=1755588007

js teniscostatropical.com collected 2026-09-27 02:14:22 UTC 9,276 bytes, 228 lines download raw bytes

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

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.