判断图片是否全部加载完成

方法一(闭包):

var $imgs = $('.img');//所有图片
//判断图片加载完成
for (var i = 0; i < $imgs.length; i++) {
	($imgs[i].onload = function(i) {
		return function() {
			if(i == $imgs.length-1) {
				console.log('最后一张图片加载完成!');
			}
		}
	}(i));
}

PS:该方法是最后一张加载完成即加载完成。如想判断全部加载完成可定义变量比较是不是img的长度,或者用方法二。

方法二: 使用deferred

var defereds     =[];
var $imgs = $('.img');//所有图片
// 判断图片加载完成
$imgs.each(function() {
	var dfd = $.Deferred();
	$(this).load(dfd.resolve);
	defereds.push(dfd);
});
$.when.apply(null, defereds).done(function() {
	console.log('全部加载完成!')
});

  

原文地址:https://www.cnblogs.com/lhy-93/p/5985270.html