JavaScript怎么判断图片是否加载完成?

JavaScript怎么判断图片是否加载完成?


有时需要获取图片的尺寸,这需要在图片加载完成以后才可以,求方法?


北风网讲师解答:


一、load事件 
 
<!DOCTYPE HTML> 
<html>  
<head>  
    <meta charset="utf-8"> 
    <title>img - load event</title> 
</head>  
<body> 
    <img id="img1" src="http://pic1.xxx.com/wall/f/51c3bb99a21ea.jpg"> 
    <p id="p1">loading...</p> 
    <script type="text/javascript"> 
        img1.onload = function() { 
            p1.innerHTML = 'loaded' 
        } 
    </script> 
</body> 
</html> 
测试,所有浏览器都显示出了“loaded”,说明所有浏览器都支持img的load事件。 
 
 
二、readystatechange事件 
 
<!DOCTYPE HTML> 
<html>  
<head>  
    <meta charset="utf-8"> 
    <title>img - readystatechange event</title> 
</head>  
<body> 
    <img id="img1" src="http://pic1.xxx.com/wall/f/51c3bb99a21ea.jpg"> 
    <p id="p1">loading...</p> 
    <script type="text/javascript"> 
        img1.onreadystatechange = function() { 
            if(img1.readyState=="complete"||img1.readyState=="loaded"){  
                p1.innerHTML = 'readystatechange:loaded' 
            } 
        } 
    </script> 
</body> 
</html> 
readyState为complete和loaded则表明图片已经加载完毕。测试IE6-IE10支持该事件,其它浏览器不支持。 
 
 
三、img的complete属性 
 
<!DOCTYPE HTML> 
<html>  
<head>  
    <meta charset="utf-8"> 
    <title>img - complete attribute</title> 
</head>  
<body> 
    <img id="img1" src="http://pic1.xxx.com/wall/f/51c3bb99a21ea.jpg"> 
    <p id="p1">loading...</p> 
    <script type="text/javascript"> 
        function imgLoad(img, callback) { 
            var timer = setInterval(function() { 
                if (img.complete) { 
                    callback(img) 
                    clearInterval(timer) 
                } 
            }, 50) 
        } 
        imgLoad(img1, function() { 
            p1.innerHTML('加载完毕') 
        }) 
    </script> 
</body> 
</html> 
轮询不断监测img的complete属性,如果为true则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持。


详细请查看:http://bbs.ibeifeng.com/read-htm-tid-65268.html
更多 WEB前端开发方案解决:http://bbs.ibeifeng.com/thread-htm-fid-150.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值