PageSourceSearch

https://pegasussuites.com/wp-content/themes/tobel/assets/plugins/p…/jquery.parallax-scroll.js?ver=6.9.1

js pegasussuites.com collected 2026-09-28 14:14:55 UTC 6,987 bytes, 185 lines download raw bytes

1// jQuery(function() {
2//     ParallaxScroll.init();
3// });
4
5var ParallaxScroll = {
6	/* PUBLIC VARIABLES */
7	showLogs: false,
8	round: 1000,
9
10	/* PUBLIC FUNCTIONS */
11	init: function() {
12		this._log("init");
13		if (this._inited) {
14			this._log("Already Inited");
15			this._inited = true;
16			return;
17		}
18		this._requestAnimationFrame = (function(){
19			return  window.requestAnimationFrame       ||
20				window.webkitRequestAnimationFrame ||
21				window.mozRequestAnimationFrame    ||
22				window.oRequestAnimationFrame      ||
23				window.msRequestAnimationFrame     ||
24				function(/* function */ callback, /* DOMElement */ element){
25					window.setTimeout(callback, 1000 / 60);
26				};
27		})();
28		this._onScroll(true);
29	},
30
31	/* PRIVATE VARIABLES */
32	_inited: false,
33	_properties: ['x', 'y', 'z', 'rotateX', 'rotateY', 'rotateZ', 'scaleX', 'scaleY', 'scaleZ', 'scale'],
34	_requestAnimationFrame:null,
35
36	/* PRIVATE FUNCTIONS */
37	_log: function(message) {
38		if (this.showLogs) console.log("Parallax Scroll / " + message);
39	},
40	_onScroll: function(noSmooth) {
41		var scroll = jQuery(document).scrollTop();
42		var windowHeight = jQuery(window).height();
43		this._log("onScroll " + scroll);
44		jQuery("[data-parallax]").each(jQuery.proxy(function(index, el) {
45			var jQueryel = jQuery(el);
46			var properties = [];
47			var applyProperties = false;
48			var style = jQueryel.data("style");
49			if (style == undefined) {
50				style = jQueryel.attr("style") || "";
51				jQueryel.data("style", style);
52			}
53			var datas = [jQueryel.data("parallax")];
54			var iData;
55			for(iData = 2; ; iData++) {
56				if(jQueryel.data("parallax"+iData)) {
57					datas.push(jQueryel.data("parallax-"+iData));
58				}
59				else {
60					break;
61				}
62			}
63			var datasLength = datas.length;
64			for(iData = 0; iData < datasLength; iData ++) {
65				var data = datas[iData];
66				var scrollFrom = data["from-scroll"];
67				if (scrollFrom == undefined) scrollFrom = Math.max(0, jQuery(el).offset().top - windowHeight);
68				scrollFrom = scrollFrom | 0;
69				var scrollDistance = data["distance"];
70				var scrollTo = data["to-scroll"];
71				if (scrollDistance == undefined && scrollTo == undefined) scrollDistance = windowHeight;
72				scrollDistance = Math.max(scrollDistance | 0, 1);
73				var easing = data["easing"];
74				var easingReturn = data["easing-return"];
75				if (easing == undefined || !jQuery.easing|| !jQuery.easing[easing]) easing = null;
76				if (easingReturn == undefined || !jQuery.easing|| !jQuery.easing[easingReturn]) easingReturn = easing;
77				if (easing) {
78					var totalTime = data["duration"];
79					if (totalTime == undefined) totalTime = scrollDistance;
80					totalTime = Math.max(totalTime | 0, 1);
81					var totalTimeReturn = data["duration-return"];
82					if (totalTimeReturn == undefined) totalTimeReturn = totalTime;
83					scrollDistance = 1;
84					var currentTime = jQueryel.data("current-time");
85					if(currentTime == undefined) currentTime = 0;
86				}
87				if (scrollTo == undefined) scrollTo = scrollFrom + scrollDistance;
88				scrollTo = scrollTo | 0;
89				var smoothness = data["smoothness"];
90				if (smoothness == undefined) smoothness = 30;
91				smoothness = smoothness | 0;
92				if (noSmooth || smoothness == 0) smoothness = 1;
93				smoothness = smoothness | 0;
94				var scrollCurrent = scroll;
95				scrollCurrent = Math.max(scrollCurrent, scrollFrom);
96				scrollCurrent = Math.min(scrollCurrent, scrollTo);
97				if(easing) {
98					if(jQueryel.data("sens") == undefined) jQueryel.data("sens", "back");
99					if(scrollCurrent>scrollFrom) {
100						if(jQueryel.data("sens") == "back") {
101							currentTime = 1;
102							jQueryel.data("sens", "go");
103						}
104						else {
105							currentTime++;
106						}
107					}
108					if(scrollCurrent<scrollTo) {
109						if(jQueryel.data("sens") == "go") {
110							currentTime = 1;
111							jQueryel.data("sens", "back");
112						}
113						else {
114							currentTime++;
115						}
116					}
117					if(noSmooth) currentTime = totalTime;
118					jQueryel.data("current-time", currentTime);
119				}
120				this._properties.map(jQuery.proxy(function(prop) {
121					var defaultProp = 0;
122					var to = data[prop];
123					if (to == undefined) return;
124					if(prop=="scale" || prop=="scaleX" || prop=="scaleY" || prop=="scaleZ" ) {
125						defaultProp = 1;
126					}
127					else {
128						to = to | 0;
129					}
130					var prev = jQueryel.data("_" + prop);
131					if (prev == undefined) prev = defaultProp;
132					var next = ((to-defaultProp) * ((scrollCurrent - scrollFrom) / (scrollTo - scrollFrom))) + defaultProp;
133					var val = prev + (next - prev) / smoothness;
134					if(easing && currentTime>0 && currentTime<=totalTime) {
135						var from = defaultProp;
136						if(jQueryel.data("sens") == "back") {
137							from = to;
138							to = -to;
139							easing = easingReturn;
140							totalTime = totalTimeReturn;
141						}
142						val = jQuery.easing[easing](null, currentTime, from, to, totalTime);
143					}
144					val = Math.ceil(val * this.round) / this.round;
145					if(val==prev&&next==to) val = to;
146					if(!properties[prop]) properties[prop] = 0;
147					properties[prop] += val;
148					if (prev != properties[prop]) {
149						jQueryel.data("_" + prop, properties[prop]);
150						applyProperties = true;
151					}
152				}, this));
153			}
154			if (applyProperties) {
155				if (properties["z"] != undefined) {
156					var perspective = data["perspective"];
157					if (perspective == undefined) perspective = 800;
158					var jQueryparent = jQueryel.parent();
159					if(!jQueryparent.data("style")) jQueryparent.data("style", jQueryparent.attr("style") || "");
160					jQueryparent.attr("style", "perspective:" + perspective + "px; -webkit-perspective:" + perspective + "px; "+ jQueryparent.data("style"));
161				}
162				if(properties["scaleX"] == undefined) properties["scaleX"] = 1;
163				if(properties["scaleY"] == undefined) properties["scaleY"] = 1;
164				if(properties["scaleZ"] == undefined) properties["scaleZ"] = 1;
165				if (properties["scale"] != undefined) {
166					properties["scaleX"] *= properties["scale"];
167					properties["scaleY"] *= properties["scale"];
168					properties["scaleZ"] *= properties["scale"];
169				}
170				var translate3d = "translate3d(" + (properties["x"] ? properties["x"] : 0) + "px, " + (properties["y"] ? properties["y"] : 0) + "px, " + (properties["z"] ? properties["z"] : 0) + "px)";
171				var rotate3d = "rotateX(" + (properties["rotateX"] ? properties["rotateX"] : 0) + "deg) rotateY(" + (properties["rotateY"] ? properties["rotateY"] : 0) + "deg) rotateZ(" + (properties["rotateZ"] ? properties["rotateZ"] : 0) + "deg)";
172				var scale3d = "scaleX(" + properties["scaleX"] + ") scaleY(" + properties["scaleY"] + ") scaleZ(" + properties["scaleZ"] + ")";
173				var cssTransform = translate3d + " " + rotate3d + " " + scale3d + ";";
174				this._log(cssTransform);
175				jQueryel.attr("style", "transform:" + cssTransform + " -webkit-transform:" + cssTransform + " " + style);
176			}
177		}, this));
178		if(window.requestAnimationFrame) {
179			window.requestAnimationFrame(jQuery.proxy(this._onScroll, this, false));
180		}
181		else {
182			this._requestAnimationFrame(jQuery.proxy(this._onScroll, this, false));
183		}
184	}
185};

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.