判断图片是否全部加载

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>JS判断图片加载</title>
	<script src="jquery.js"></script>
	<style>
       *{
       	padding:0;
       	margin:0;
       }
	</style>
</head>
<body>
	<img src="images/1.jpg" alt="">
	<img src="images/2.jpg" alt="">
	<img src="images/3.jpg" alt="">
	<img src="images/4.jpg" alt="">
	<img src="images/5.jpg" alt="">
	<img src="images/6.jpg" alt="">
	<img src="images/7.jpg" alt="">
	<img src="images/8.jpg" alt="">
	<img src="images/9.jpg" alt="">
	<img src="images/10.jpg" alt="">
	<img src="images/11.jpg" alt="">
	<img src="images/22.jpg" alt="">
	<script>
		var imgdefereds=[];
		var n=$("img").length;
		$('img').each(function(){
		 var dfd=$.Deferred();     //deferred对象是Jquery回调函数的解决方案,即某些耗时很长的JS操作之后执行,比如AJAX,它允许你为多个事件指定一个回调函数,用$.when().down().fail() $.when()的参数只能是deferred对象,如果不是,则done会立即执行:
		 $(this).bind('load',function(){
		 dfd.resolve();
		 }).bind('error',function(){
		 // 图片加载错误,加入错误处理
		 // dfd.resolve();
		 console.log("加载失败!错误图片的路径为:"+$(this).attr("src"));
		 dfd.reject();  //dtd.resolve()的意思是,将dtd对象的执行状态从"未完成"改为"已完成",从而触发done()方法。dtd.reject()相反
		 })
		 if(this.complete) setTimeout(function(){
		 dfd.resolve();
		 },1000);
		 imgdefereds.push(dfd);  //把每个图片的加载结果放在数组中
		})
		$.when.apply(null,imgdefereds).done(function(){   //
		   //callback
		   alert("图片加载完发毕");
		}).fail(function(){
			console.log("error");
		});
	</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值