Lazy Load es un script de jQuery que ayuda a agilizar la carga del blog cuando en él se usan muchas imágenes, esto es porque el script detiene la carga de las imágenes, o sea que, las pone en modo de espera para que primero carguen los demás elementos, y conforme se baje el scroll de la página irán apareciendo las imágenes.
Esto supone una mejora de velocidad en la carga del blog, sobre todo cuando en él hay imágenes muy grandes o una cantidad significativa de imágenes.
Además, usaremos el efecto FadeIn para que cuando las imágenes aparezcan lo hagan en forma de desvanecimiento.
Puedes ver un ejemplo en este blog de pruebas, si bajas el scroll poco a poco irás viendo cómo las imágenes van apareciendo.
La instalación es tan sencilla que sólo requiere un paso, y es que nos evitaremos alojar el script en algún servidor, ya que lo nos interesa es la velocidad, alojaremos el script directo en la plantilla.
Para poner Lazy Load en tu blog ingresa en la Edición HTML de la plantilla y antes de </head> pega el script:
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'/>Guarda los cambios y listo.
<script type='text/javascript'>
//<![CDATA[
/*
* Lazy Load - jQuery plugin for lazy loading images
* Copyright (c) 2007-2012 Mika Tuupola
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
* Project home:
* http://www.appelsiini.net/projects/lazyload
*/
(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}
var elements=this;if("scroll"==settings.event){$(settings.container).bind("scroll",function(event){var counter=0;elements.each(function(){if($.abovethetop(this,settings)||$.leftofbegin(this,settings)){}else if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});var temp=$.grep(elements,function(element){return!element.loaded;});elements=$(temp);});}
this.each(function(){var self=this;if(undefined==$(self).attr("original")){$(self).attr("original",$(self).attr("src"));}
if("scroll"!=settings.event||undefined==$(self).attr("src")||settings.placeholder==$(self).attr("src")||($.abovethetop(self,settings)||$.leftofbegin(self,settings)||$.belowthefold(self,settings)||$.rightoffold(self,settings))){if(settings.placeholder){$(self).attr("src",settings.placeholder);}else{$(self).removeAttr("src");}
self.loaded=false;}else{self.loaded=true;}
$(self).one("appear",function(){if(!this.loaded){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))
[settings.effect](settings.effectspeed);self.loaded=true;}).attr("src",$(self).attr("original"));};});if("scroll"!=settings.event){$(self).bind(settings.event,function(event){if(!self.loaded){$(self).trigger("appear");}});}});$(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":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"});})(jQuery);
$(document).ready(function($){
$('img').lazyload({
effect:'fadeIn',
placeholder:'https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4coMEnvkbz3SjCC99bk6Xn7Hvj0X7WfJFJ2zxH0FolWDyFMsjLxpSmrNsQUDO3ylmvR-3sMasq1RT1GDCC8c32H0npmZLlgKgIPfvDWCjC-jXbSrj3sTzAnYg18a7_-VSdODtmOYVwKs/s1/bg_placeholder.png'
});
});
//]]>
</script>
Si ya tuvieras jQuery deja sólo la versión más actual.
Como puedes ver el script no es tan extenso en comparación de otros que usamos con frecuencia, agilizará la carga del blog, y además aparecerá las imágenes con efecto de desvanecimiento.
Sin embargo, sólo se recomienda su uso cuando el blog contiene muchas imágenes, de los contrario no tiene caso llenar el blog con otro script ya que además no representará una mejora sustancial ni el el tiempo de carga ni en el tamaño de la página.
Sin embargo, sólo se recomienda su uso cuando el blog contiene muchas imágenes, de los contrario no tiene caso llenar el blog con otro script ya que además no representará una mejora sustancial ni el el tiempo de carga ni en el tamaño de la página.
(24/abr/2012) ACTUALIZACIÓN: si te da problemas con las imágenes de los gadgets, y/o quieres que se aplique sólo a las imágenes de las entradas, entonces cambia lo que está en color rojo por esto:
$('.post img').lazyload({
No hay comentarios:
Publicar un comentario