/* * Lazy Load - jQuery plugin for lazy loading images * * Copyright (c) 2007-2011 Mika Tuupola * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php * * Project home: * http://www.appelsiini.net/projects/lazyload * * Version: 1.7.0-dev * */ (function($){$.fn.lazyload=function(options){var settings={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:window,skip_invisible:true};if(options){if(null!==options.failurelimit){options.failure_limit=options.failurelimit;delete options.failurelimit}$.extend(settings,options)}var elements=this;if(0==settings.event.indexOf("scroll")){$(settings.container).bind(settings.event,function(event){var counter=0;elements.each(function(){if(settings.skip_invisible&&!$(this).is(":visible")){return}if($.abovethetop(this,settings)||$.leftofbegin(this,settings)){}else if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear")}else{if(++counter>settings.failure_limit){return false}}});var temp=$.grep(elements,function(element){return!element.loaded});elements=$(temp)})}this.each(function(){var self=this;self.loaded=false;$(self).one("appear",function(){if(!this.loaded){$("").bind("load",function(){$(self).hide().attr("src",$(self).data("original"))[settings.effect](settings.effectspeed);self.loaded=true}).attr("src",$(self).data("original"))}});if(0!=settings.event.indexOf("scroll")){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear")}})}});$(window).bind("resize",function(event){$(settings.container).trigger(settings.event)});$(settings.container).trigger(settings.event);return this};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop()}else{var fold=$(settings.container).offset().top+$(settings.container).height()}return fold<=$(element).offset().top-settings.threshold};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft()}else{var fold=$(settings.container).offset().left+$(settings.container).width()}return fold<=$(element).offset().left-settings.threshold};$.abovethetop=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollTop()}else{var fold=$(settings.container).offset().top}return fold>=$(element).offset().top+settings.threshold+$(element).height()};$.leftofbegin=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).scrollLeft()}else{var fold=$(settings.container).offset().left}return fold>=$(element).offset().left+settings.threshold+$(element).width()};$.extend($.expr[':'],{"below-the-fold":function(a){return $.belowthefold(a,{threshold:0,container:window})},"above-the-fold":function(a){return!$.belowthefold(a,{threshold:0,container:window})},"right-of-fold":function(a){return $.rightoffold(a,{threshold:0,container:window})},"left-of-fold":function(a){return!$.rightoffold(a,{threshold:0,container:window})}})})(jQuery);