Skip to content

Instantly share code, notes, and snippets.

@carlosrberto
Created October 8, 2013 19:00
Show Gist options
  • Save carlosrberto/6889761 to your computer and use it in GitHub Desktop.
Save carlosrberto/6889761 to your computer and use it in GitHub Desktop.
/*
Pré-carregamento de imagens
*/
preloadImage = function(url, complete) {
if ( preloadImage.cache[url] ) {
complete.call(null);
return;
}
var img = new Image();
img.onload = function() {
complete.call(null);
preloadImage.cache[url] = true;
};
img.onerror = function() {
complete.call(null);
console.log( 'A imagem '+ url +' não pode ser carregada' );
}
img.src = url;
};
preloadImage.cache = {};
/*
Pré-carregamento de várias imagens
*/
preloadImages = function(urls, complete, i) {
if ( !urls || urls.length === 0 ) {
complete.call(this, i);
return;
// throw new Error("Um array era esperado");
}
i = i || 0;
var url = urls[i];
if ( ! url ) {
complete.call(this, i);
return;
}
preloadImage(urls[i], function() {
preloadImages(urls, complete, i+1);
});
};
/*
Pré-carregamento de imagens de um seletor
*/
preloadImagesFromSelector = function(el, complete) {
var images = $.map(el.find('img'), function(item, index){
return $(item).attr('src');
});
preloadImages(images, complete);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment