您的位置:首页 > Web前端 > JQuery

jquery判断图片是否加载完毕

2015-02-15 00:21 405 查看
来源: <http://www.2cto.com/kf/201409/331234.html>
利用图片没有加载完成的时候,宽高为0。我们很容易判断图片的一个加载情况。如下:
思路:判断图片高度 --> 存在高度等于0 --> 定时500毫秒再次扫描 --> 直到全部不等于0 -->进行下一步处理
注意:引入jquery.js

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>load event</title>
<script language="javascript" src="jquery.js"></script>
</head>
<body>
<img src="http://home.baidu.com/resource/r/home/img/logo-yy.gif" alt="" class='cover'/>
</body>
<script>
var t_img; // 定时器
var isLoad = true; // 控制变量

// 判断图片加载状况,加载完成后回调
isImgLoad(function(){
// 加载完成
//document.write('图片加载完成!');
alert('图片加载完成');
});

// 判断图片加载的函数
function isImgLoad(callback){
// 注意我的图片类名都是cover,因为我只需要处理cover。其它图片可以不管。
// 查找所有封面图,迭代处理
$('.cover').each(function(){
// 找到为0就将isLoad设为false,并退出each
if(this.height === 0){
isLoad = false;
return false;
}
});
// 为true,没有发现为0的。加载完毕
if(isLoad){
clearTimeout(t_img); // 清除定时器
// 回调函数
callback();
// 为false,因为找到了没有加载完成的图,将调用定时器递归
}else{
isLoad = true;
t_img = setTimeout(function(){
isImgLoad(callback); // 递归扫描
},500); // 我这里设置的是500毫秒就扫描一次,可以自己调整
}
}
</script>
</html>


需要注意的是,该方法不能判断图片是否存在.即使图片不存在,img在请求完成后,会有一个不为0的宽高.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: