PageSourceSearch

http://www.accomplir.fr/wp-content/themes/Oneup/oneup/framework/js…pixelentity.volo.captions.js?ver=1695901164

js accomplir.fr collected 2026-10-07 15:28:44 UTC 8,756 bytes, 376 lines download raw bytes

1(function ($) {
2	"use strict";
3	/*jslint undef: false, browser: true, devel: false, eqeqeq: false, bitwise: false, white: false, plusplus: false, regexp: false, nomen: false */
4	/*jshint undef: false, browser: true, devel: false, eqeqeq: false, bitwise: false, white: false, plusplus: false, regexp: false, nomen: false, validthis: true */
5	/*global jQuery,setTimeout,setInterval,clearInterval,clearTimeout,WebKitCSSMatrix,pixelentity */
6	
7	$.pixelentity = $.pixelentity || {version: '1.0.0'};
8	
9	$.pixelentity.peVoloCaptions = {	
10		conf: {
11			slider: false,
12			origW: false,
13			origH: false,
14			orig: "default",
15			api: false
16		} 
17	};
18	
19	
20	// 0-480, 481-767, 768-980, 980 - anything
21	var cssT = $.support.csstransitions;
22	var cssA = $.support.cssanimation;
23	var ieOld = $.browser.msie && $.browser.version < 9;
24	var jwin = $(window);
25		
26	var properties = "";
27	
28	if (cssT) {
29		//properties = "opacity, %0transform".format($.support.csstransitionsPrefix);
30		properties = "opacity";
31	}
32		
33	function PeVoloCaptions(target, conf) {
34		var w,h,cw,ch;
35		var slider;
36		var slides;
37		var active = {};
38		var current = -1;
39		var scaled = false;
40		//var captionsLayer;
41		
42		function resizeCaption(c) {
43			if (!w || !h || w<20 || h<20) {
44				setTimeout(resize,100);
45				return;
46			}
47			c = $(c);
48			
49			var scaler;
50			
51			if (c.find(".peCaptionLayer").length > 0) {
52				c.css({
53					"margin": 0,
54					"padding": 0,
55					"background": "none"
56				});
57				var r = 1,x = 0, y = 0;
58				
59				cw = parseInt(c.attr("data-orig-width"),10) || conf.origW;
60				ch = parseInt(c.attr("data-orig-height"),10) || conf.origH;
61				
62				if (cw && ch) {
63					scaler = $.pixelentity.Geom.getScaler("fit","center","center",w,h,cw,ch);
64					r = scaler.ratio;
65					x = scaler.offset.w;
66					y = scaler.offset.h;
67				} else {
68					r = h/conf.origH;
69				}
70				
71				if (r != 1 || x !== 0 || y !== 0 || scaled) {
72					c.transform(r,x,y,null,null,true);
73					scaled = true;
74				}
75				
76			} else {
77				var align = (c.attr("data-align") || "bottom,left").split(",");
78				scaler = $.pixelentity.Geom.getScaler("none",align[1],align[0],w,h,c.outerWidth(),c.outerHeight());
79				var co = (c.attr("data-offset") || "-20,40").split(",");
80				c.css({
81					"margin-top": scaler.offset.h+parseInt(co[0],10),
82					"margin-left": scaler.offset.w+parseInt(co[1],10)
83				});	
84			}			
85		}
86
87		
88		function resizeCaptions() {
89			var i,j;
90			for (i in active) {
91				if (typeof i == "string" && active[i]) {
92					for (j = 0; j<active[i].length;j++) {
93						resizeCaption(active[i][j]);
94					}
95				}
96			}
97		}
98		
99		function removeAnimationClasses() {
100			var layer = $(this);
101			layer.removeClass(layer.data("transition-classes"));
102		}
103		
104		function resize() {
105			w = target.width();
106			h = target.height();
107			resizeCaptions();
108		}
109		
110		/*
111		function remove(el,idx) {
112			slides[idx].append(active[idx]);
113			delete active[idx];
114		}
115		*/
116		
117		function fadeIn(el) {
118			var jel = $(el);
119			
120			var duration = parseFloat(jel.attr("data-duration") || 0.5);
121			var delay = parseFloat(jel.attr("data-delay") || 0);
122			var layers = jel.find(".peCaptionLayer");
123			var i,layer,x,y,tClass,cmd;
124			
125			if (layers.length > 0) {
126				
127				jel.addClass("pe-has-layers");
128								
129				for (i=0;i<layers.length;i++) {
130					layer = layers.eq(i);
131					
132					duration = parseFloat(layer.attr("data-duration"),10) || 1;
133					delay = parseFloat(layer.attr("data-delay"),10) || 0;
134					
135					
136					if ((cmd = layer.attr("data-command"))) {
137						if (typeof slider[cmd] === "function") {
138							if (delay) {
139								setTimeout(function () {
140									slider[cmd]();
141								},delay*1000);
142							} else {
143								slider[cmd]();
144							}
145						}
146						//continue;
147					}
148										
149					x = parseInt(layer.attr("data-x"),10) || 0;
150					y = parseInt(layer.attr("data-y"),10) || 0;
151					
152					//conf.orig = "center";
153					
154					if (conf.orig === "center" || layer.attr("data-origin") === "center") {
155						
156						if (h <= 400 && y < 0) {
157							//alert("here");
158							//y = 0;
159						}
160						
161						x += (cw - layer.width()) >> 1; 
162						y += (ch - layer.height()) >> 1;
163					}
164					
165					layer.css({
166						"left": x+"px",
167						"top": y+"px"
168					});
169					
170					if (cssA) {
171						layer[0].style[cssA+"Delay"] = delay + "s";
172						layer[0].style[cssA+"Duration"] = duration + "s";
173						tClass = "animated ";
174						tClass += layer.attr("data-transition") || "peZoom";
175						// workaround for some chrome version which reach 100% cpu usage in a background tab
176						// disabled for now, in case they fix
177						//layer.one("webkitAnimationEnd",removeAnimationClasses);
178						layer.addClass(tClass).data("transition-classes",tClass);
179					} else {
180						//layer.stop().css("opacity",0).delay(delay*1000).animate({opacity:ieOld ? 1 : 1},Math.min(duration,1)*1000);
181						layer.stop().css("opacity",0).delay(delay*1000).animate({opacity:1},ieOld ? 0 : Math.min(duration,1)*1000);
182					}
183					
184				}
185				
186				jel.css("opacity",1);
187				
188			} else {
189				if (cssT) {
190					el.style[cssT+"Property"] = properties;
191					el.style[cssT+"Duration"] = duration + "s";
192					el.style[cssT+"Delay"] = delay + "s";
193					jel.css("opacity",1);
194					jel.transform(1,0,0,w,h);
195				} else {
196					jel.stop().delay(delay*1000).animate({opacity:1,left:0,top:0},Math.min(duration,1)*1000);
197				}
198			}
199			jel.find("img").addClass("pe-lazyloading-forceload");
200			jwin.triggerHandler("pe-lazyloading-refresh");
201		}
202		
203		function fadeOut(el) {
204			var jel = $(el);
205			if (cssT) {
206				el.style[cssT+"Property"] = "opacity";
207				el.style[cssT+"Delay"] = "0s";
208				el.style[cssT+"Duration"] = "0.5s";	
209				jel.css("opacity",0);	
210			} else {
211				jel.stop().animate({opacity:0}
211,500);
212			}
213			//console.log(el);
214		}
215		
216		function killCaption(i) {
217			if (active[i].hasClass('pe-caption-persistent')) {
218				return;
219			}
220			var j, layers;
221			if (cssT) {
222				layers = active[i].find("> div.peCaptionLayer");
223				for (j=0;j<layers.length;j++) {
224					layers.eq(j).removeClass(layers.eq(j).data("transition-classes"));
225				}		
226			}
227			slides[i].append(active[i]);
228			active[i] = false;
229		}
230		
231		function clean(force) {
232			var i,j,layers;
233			for (i in active) {
234				if (typeof i == "string" && i != current && active[i]) {
235					killCaption(i);
236				}
237			}
238		}
239		
240		function setTransition(el) {
241			el = $(el);
242			el.fadeTo(0,0);
243			var left = 0, top = 0;
244			switch (el.attr("data-transition")) {
245			case "flyRight":
246				left = 100;
247				break;
248			case "flyLeft":
249				left = -100;
250				break;
251			case "flyTop":
252				top = -100;
253				break;
254			case "flyBottom":
255				top = 100;
256				break;
257			}
258			if (cssT) {
259				el.transform(1,left,top,w,h);
260			} else {
261				el.css({left:left,top:top});
262			}
263
264		}
265
266		
267		function change(e,data) {
268			var i,j,idx = data.slideIdx-1;
269			
270			if (idx === current) {
271				return;
272			}
273			
274			// detect overlap: current slide was being remove when made active again (caused by fast prev/next)
275			if (active[idx]) {
276				current = -1;
277				// destroy anything with no mercy
278				clean(true);
279			} 
280			
281			var c = slides[idx].find(".peCaption");
282			
283			for (i = 0; i<c.length;i++) {
284				setTransition(c[i]);
285			}
286			
287			c.fadeTo(0,0);
288			target.prepend(c);
289						
290			current = idx;
291			var persistent = false;
292			
293			if (!(active[idx] && active[idx].hasClass('pe-caption-persistent'))) {
294				active[idx] = c;
295			} else {
296				persistent = true;
297			}
298			
299			resize();
300			
301			for (i in active) {
302				if (typeof i == "string" && i != idx && active[i]) {
303					if (active[i].hasClass('pe-caption-persistent')) {
304						continue;
305					}
306					for (j = 0; j<active[i].length;j++) {
307						fadeOut(active[i][j]);
308					}
309				}
310			}
311			
312			setTimeout(clean,500);
313			
314			for (i = 0; i<c.length;i++) {
315				fadeIn(c[i]);
316			}	
317			
318			if (!persistent) {
319				active[idx] = c;
320			}
321		}
322		
323		function ready(e,data) {
324			slides = data.markup;
325		}
326		
327		// init function
328		function start() {
329			if (conf.slider) {
330				link(conf.slider);
331			}
332		}
333		
334		function link(s) {
335			slider = s;
336			slider.bind("ready.pixelentity",ready);
337			slider.bind("resize.pixelentity",resize);
338			slider.bind("change.pixelentity",change);
339		}
340		
341		$.extend(this, {
342			// plublic API
343			link: link,
344			destroy: function() {
345				target.data("peVoloCaptions", null);
346				target = undefined;
347			}
348		});
349		
350		// initialize
351		start();
352	}
353	
354	// jQuery plugin implementation
355	$.fn.peVoloCaptions = function(conf) {
356		
357		// return existing instance	
358		var api = this.data("peVoloCaptions");
359		
360		if (api) { 
361			return api; 
362		}
363		
364		conf = $.extend(true, {}, $.pixelentity.peVoloCaptions.conf, conf);
365		
366		// install the plugin for each entry in jQuery object
367		this.each(function() {
368			var el = $(this);
369			api = new PeVoloCaptions(el, conf);
370			el.data("peVoloCaptions", api); 
371		});
372		
373		return conf.api ? api: this;		 
374	};
375	
376}(jQuery));

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.