mirror of
				https://github.com/dawidolko/Website-Templates.git
				synced 2025-10-31 00:13:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Plugin: jQuery Parallax
 | |
| Version 1.1.3
 | |
| Author: Ian Lunn
 | |
| Twitter: @IanLunn
 | |
| Author URL: http://www.ianlunn.co.uk/
 | |
| Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/
 | |
| 
 | |
| Dual licensed under the MIT and GPL licenses:
 | |
| http://www.opensource.org/licenses/mit-license.php
 | |
| http://www.gnu.org/licenses/gpl.html
 | |
| */
 | |
| 
 | |
| (function( $ ){
 | |
| 	var $window = $(window);
 | |
| 	var windowHeight = $window.height();
 | |
| 
 | |
| 	$window.resize(function () {
 | |
| 		windowHeight = $window.height();
 | |
| 	});
 | |
| 
 | |
| 	$.fn.parallax = function(xpos, speedFactor, outerHeight) {
 | |
| 		var $this = $(this);
 | |
| 		var getHeight;
 | |
| 		var firstTop;
 | |
| 		var paddingTop = 0;
 | |
| 		
 | |
| 		//get the starting position of each element to have parallax applied to it		
 | |
| 		$this.each(function(){
 | |
| 		    firstTop = $this.offset().top;
 | |
| 		});
 | |
| 
 | |
| 		if (outerHeight) {
 | |
| 			getHeight = function(jqo) {
 | |
| 				return jqo.outerHeight(true);
 | |
| 			};
 | |
| 		} else {
 | |
| 			getHeight = function(jqo) {
 | |
| 				return jqo.height();
 | |
| 			};
 | |
| 		}
 | |
| 			
 | |
| 		// setup defaults if arguments aren't specified
 | |
| 		if (arguments.length < 1 || xpos === null) xpos = "50%";
 | |
| 		if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;
 | |
| 		if (arguments.length < 3 || outerHeight === null) outerHeight = true;
 | |
| 		
 | |
| 		// function to be called whenever the window is scrolled or resized
 | |
| 		function update(){
 | |
| 			var pos = $window.scrollTop();				
 | |
| 
 | |
| 			$this.each(function(){
 | |
| 				var $element = $(this);
 | |
| 				var top = $element.offset().top;
 | |
| 				var height = getHeight($element);
 | |
| 
 | |
| 				// Check if totally above or totally below viewport
 | |
| 				if (top + height < pos || top > pos + windowHeight) {
 | |
| 					return;
 | |
| 				}
 | |
| 
 | |
| 				$this.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px");
 | |
| 			});
 | |
| 		}		
 | |
| 
 | |
| 		$window.bind('scroll', update).resize(update);
 | |
| 		update();
 | |
| 	};
 | |
| })(jQuery);
 |