Sha256: c8f875dba72726966462e0dc8607d829d8bb6fac64b274cb3910ad8eab586853

Contents?: true

Size: 1.68 KB

Versions: 45

Compression:

Stored size: 1.68 KB

Contents

/**
 *  Plugin which is applied on a list of img objects and calls
 *  the specified callback function, only when all of them are loaded (or errored).
 *  @author:  H. Yankov (hristo.yankov at gmail dot com)
 *  @version: 1.0.0 (Feb/22/2010)
 *	http://yankov.us
 */

(function($) {
$.fn.batchImageLoad = function(options) {
	var images = $(this);
	var originalTotalImagesCount = images.size();
	var totalImagesCount = originalTotalImagesCount;
	var elementsLoaded = 0;

	// Init
	$.fn.batchImageLoad.defaults = {
		loadingCompleteCallback: null,
		imageLoadedCallback: null
	}
  var opts = $.extend({}, $.fn.batchImageLoad.defaults, options);

	// Start
	images.each(function() {
		// The image has already been loaded (cached)
		if ($(this)[0].complete) {
			totalImagesCount--;
			if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);
		// The image is loading, so attach the listener
		} else {
			$(this).load(function() {
				elementsLoaded++;

				if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);

				// An image has been loaded
				if (elementsLoaded >= totalImagesCount)
					if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
			});
			$(this).on("error", function() {
				elementsLoaded++;

				if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount);

				// The image has errored
				if (elementsLoaded >= totalImagesCount)
					if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
			});
		}
	});

	// There are no unloaded images
	if (totalImagesCount <= 0)
		if (opts.loadingCompleteCallback) opts.loadingCompleteCallback();
};
})(jQuery);

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
showoff-0.20.4 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.20.3 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.20.2 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.20.1 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.20.0 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.6 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.4 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.3 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.2 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.1 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.19.0 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.18.2 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.18.1 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.18.0 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.17.2 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.17.1 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.17.0 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.16.2 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.16.1 public/js/jquery.batchImageLoad-1.0.0.js
showoff-0.16.0 public/js/jquery.batchImageLoad-1.0.0.js