PageSourceSearch

https://www.savimex.com/wp-content/plugins/lte-ext/assets/js/jquery.paroller.js?ver=1.4.7

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

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.