Revision: 22061
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 30, 2009 13:09 by kcmr
Initial Code
/*
* Lazy Load de imagenes con Mootools http://uninstallme.com/lazy-load-de-imagenes-con-mootools
* Basado en lazierLoad – Javascript Image Lazy Loader for Prototype http://www.bram.us/projects/js_bramus/lazierload/
*/
window.addEvent('domready', function(){
$$('img').each(function(el){
new Kcmr.MooLazyLoad(el);
});
});
var Kcmr = Kcmr || {};
Kcmr.MooLazyLoad = new Class({
Implements: Options,
options: {
blank: 'images/blank.gif'
},
initialize: function(element, options){
this.setOptions(options);
this.element = element;
this.originalSrc = this.element.src; // guardamos el atributo src original
this.hideNotOnViewport(); // ocultacion inicial de las imagenes no visibles
this.showOnViewport(); // mostramos imagenes en el area visible de la ventana con el evento scroll
},
hideNotOnViewport: function(){
if(!this.isOnViewport()){
this.element.src = this.options.blank;
this.element.fade('hide');
}
},
showOnViewport: function(){
window.addEvent('scroll', function(){
if(this.isOnViewport()){
this.element.fade('in');
this.element.src = this.originalSrc;
}
}.bind(this));
},
isOnViewport: function(){
// Calcular la posicion Y de un elemento en pantalla http://tinyurl.com/yax5w2o
var a = window.getScroll().y; // espacio no visible por arriba
var b = this.element.getCoordinates().top; // posicion top de la imagen respecto a window
var c = window.getSize().y; // altura del area visible de la ventana
var d = this.element.height; // altura de la imagen
var e = (b - a) + (d / 2);
return (e < c); // esta en el area visible de la ventana?
}
});
Initial URL
http://uninstallme.com/ejemplos/mootools-lazy-load/
Initial Description
Initial Title
Mootools Lazy Load
Initial Tags
load
Initial Language
JavaScript