PageSourceSearch

https://squaremedia.ro/wp-content/themes/modesto/js/parallax.jquery.js?ver=3.0.0

js squaremedia.ro collected 2026-09-26 12:40:38 UTC 3,514 bytes, 105 lines download raw bytes

1/*
2 * parallax.jquery.js v1.0.0
3 * http://themeforest.net/user/lionstyle
4 *
5 * Copyright 2016, LionStyle
6 * http://themeforest.net/user/lionstyle
7 */
8
9(function($) {
10 
11    $.fn.parallax = function(options) { 
12
13    	if(navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i)) return;
14
15        var settings = {  
16            shine : true,
17            shadow : true
18        };
19
20        if(options) {
21            $.extend(settings, options);
22        }
23
24        return this.each(function() {   
25
26
27			var $poster = $(this),
28				$settings = settings,
29				$shine,
30				$layer = $poster.find('[class*="layer-"]'),
31				w,
32				h,
33				$posterLeft,
34				$posterTop,
35				isWebkit = 'WebkitAppearance' in document.documentElement.style;
36
37			if($settings.shine) {
38				$poster.append('<span class="shine" style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(90deg, rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 60%);"></span>');
39				$shine = $poster.find('.shine');
40			}
41			if($settings.shadow) $poster.addClass('shadow');
42			if(!isWebkit) $poster.addClass('animation-disabled');
43			//$poster.parent().css({'transform-style' : 'preserve-3d', 'transform' : 'perspective(800px)'});
44
45			function init(){
46				w = $poster.outerWidth();
47				h = $poster.outerHeight();
48				$posterLeft = $poster.offset().left;
49				$posterTop = $poster.offset().top;
50			}
51
52			init();
53
54			window.addEventListener("resize", function() {
55				init();
56			}, false);
57
58
59			$poster.on('mousemove', function(e) {
60				var offsetX = 0.5 - (e.pageX - $posterLeft) / w, //cursor position X
61					offsetY = 0.5 - (e.pageY - $posterTop) / h, //cursor position Y
62					dy = (e.pageY - $posterTop) - h / 2, //@h/2 = center of poster
63					dx = (e.pageX - $posterLeft) - w / 2, //@w/2 = center of poster
64					theta = Math.atan2(dy, dx), //angle between cursor and center of poster in RAD
65					angle = theta * 180 / Math.PI - 90, //convert rad in degrees
66					offsetPoster = $poster.data('offset'),
67					transformPoster = 'perspective(800px) translateY(' + -offsetX * offsetPoster + 'px) rotateX(' + (-offsetY * offsetPoster) + 'deg) rotateY(' + (offsetX * (offsetPoster * 2)) + 'deg)'; //poster transform
68
69
70				//get angle between 0-360
71				if (angle < 0) {
72					angle = angle + 360;
73				}
74
75				//gradient angle and opacity
76				if($settings.shine) $shine.css('background', 'linear-gradient(' + angle + 'deg, rgba(255,255,255,' + (e.pageY - $posterTop) / h*0.5 + ') 0%,rgba(255,255,255,0) 80%)');
77
78				//poster transform
79				$poster.css({'transform': transformPoster, '-webkit-transform': transformPoster});
80
81				//parallax foreach layer
82				$layer.each(function() {
83					var $this = $(this),
84					offsetLayer = $this.data('offset') || 0,
85					transformLayer = 'translateX(' + offsetX * offsetLayer + 'px) translateY(' + offsetY * offsetLayer + 'px)';
86					$this.css({'transform': transformLayer, '-webkit-transform': transformLayer});
87				});
88			});
89
90			$poster.on('mouseenter', function(e) {
91				init();
92			});
93
94			$poster.on('mouseleave', function(e) {
95				transformPoster = 'translateY(0px) rotateX(0deg) rotateY(0deg)';
96				$poster.css({'transform': transformPoster, '-webkit-transform': transformPoster});
97				transformLayer = 'translateX(0px) translateY(0px)';
98			    $layer.css({'transform': transformLayer, '-webkit-transform': transformLayer});
99			});
100
101        });
102     
103    };
104     
105})(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.