Blame | Letzte Änderung | Log anzeigen | RSS feed
/*Plugin: jQuery ParallaxVersion 1.1.3Author: Ian LunnTwitter: @IanLunnAuthor 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.phphttp://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 specifiedif (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 resizedfunction 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 viewportif (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);