Skip to content

Instantly share code, notes, and snippets.

@lapluviosilla
Created September 21, 2010 22:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lapluviosilla/590692 to your computer and use it in GitHub Desktop.
Save lapluviosilla/590692 to your computer and use it in GitHub Desktop.
var imageCache = [];
// preload images and cache them for rapid loading
function preloadImages(paths) {
for (var i = paths.length; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = paths[i];
imageCache.push(cacheImage);
}
}
/*
* $('img.photo',this).imagesLoaded(myFunction)
* execute a callback when all images have loaded.
* needed because .load() doesn't work on cached images
*
* callback function is passed the last image to load
* as an argument, and the collection as `this`
*/
$.fn.imagesLoaded = function(callback){
var elems = this.filter('img'), len = elems.length;
elems.bind('load',function(){
if (--len <= 0){ callback.call(elems,this); }
}).each(function(){
// cached images don't fire load sometimes, so we reset src.
if (this.complete || this.complete === 'undefined'){
var src = this.src;
// webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
this.src = '#';
this.src = src;
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment