desandro/imagesloaded
A jQuery plugin that triggers a callback after all the selected/child images have been loaded. Because you can't do .load() on cached images.
$('#my-container').imagesLoaded( function( $images, $proper, $broken ) {
// callback provides three arguments:
// $images: the jQuery object with all images
// $proper: the jQuery object with properly loaded images
// $broken: the jQuery object with broken images
// `this` is a jQuery object of container
console.log( $images.length + ' images total have been loaded in ' + this );
console.log( $proper.length + ' properly loaded images' );
console.log( $broken.length + ' broken images' );
});
var dfd = $('#my-container').imagesLoaded(); // save a deferred object
// Always
dfd.always( function(){
console.log( 'all images has finished with loading, do some stuff...' );
});
// Resolved
dfd.done( function( $images ){
// callback provides one argument:
// $images: the jQuery object with all images
console.log( 'deferred is resolved with ' + $images.length + ' properly loaded images' );
});
// Rejected
dfd.fail( function( $images, $proper, $broken ){
// callback provides three arguments:
// $images: the jQuery object with all images
// $proper: the jQuery object with properly loaded images
// $broken: the jQuery object with broken images
console.log( 'deferred is rejected with ' + $broken.length + ' out of ' + $images.length + ' images broken' );
});
// Notified
dfd.progress( function( isBroken, $images, $proper, $broken ){
// function scope (this) is a jQuery object with image that has just finished loading
// callback provides four arguments:
// isBroken: boolean value of whether the loaded image (this) is broken
// $images: jQuery object with all images in set
// $proper: jQuery object with properly loaded images so far
// $broken: jQuery object with broken images so far
console.log( 'Loading progress: ' + ( $proper.length + $broken.length ) + ' out of ' + $images.length );
});
沒有留言:
張貼留言