PageSourceSearch

https://mds-ekb.ru/bitrix/templates/mds/javascript/parallax.js

js mds-ekb.ru collected 2026-10-05 00:06:39 UTC 1,933 bytes, 72 lines download raw bytes

1/*
2Plugin: jQuery Parallax
3Version 1.1.3
4Author: Ian Lunn
5Twitter: @IanLunn
6Author URL: http://www.ianlunn.co.uk/
7Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/
8
9Dual licensed under the MIT and GPL licenses:
10http://www.opensource.org/licenses/mit-license.php
11http://www.gnu.org/licenses/gpl.html
12*/
13
14(function( jQuery ){
15	var jQuerywindow = jQuery(window);
16	var windowHeight = jQuerywindow.height();
17
18	jQuerywindow.resize(function () {
19		windowHeight = jQuerywindow.height();
20	});
21
22	jQuery.fn.parallax = function(xpos, speedFactor, outerHeight) {
23		var jQuerythis = jQuery(this);
24		var getHeight;
25		var firstTop;
26		var paddingTop = 0;
27		
28		//get the starting position of each element to have parallax applied to it		
29		jQuerythis.each(function(){
30		    firstTop = jQuerythis.offset().top;
31		});
32
33		if (outerHeight) {
34			getHeight = function(jqo) {
35				return jqo.outerHeight(true);
36			};
37		} else {
38			getHeight = function(jqo) {
39				return jqo.height();
40			};
41		}
42			
43		// setup defaults if arguments aren't specified
44		if (arguments.length < 1 || xpos === null) xpos = "50%";
45		if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;
46		if (arguments.length < 3 || outerHeight === null) outerHeight = true;
47		
48		// function to be called whenever the window is scrolled or resized
49		function update(){
50			var pos = jQuerywindow.scrollTop();				
51
52			jQuerythis.each(function(){
53				var jQueryelement = jQuery(this);
54				var top = jQueryelement.offset().top;
55				var height = getHeight(jQueryelement);
56
57				// Check if totally above or totally below viewport
58				if (top + height < pos || top > pos + windowHeight) {
59					return;
60				}
61
62
63				jQuerythis.css('backgroundPosition', xpos + " " + Math.round((top - pos) * speedFactor) + "px");
64
65
66			});
67		}		
68
69		jQuerywindow.bind('scroll', update).resize(update);
70		update();
71	};
72})(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.