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

来源:互联网 发布:北邮ipv6网络电视网站 编辑:程序博客网 时间:2024/04/30 21:07
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
0 0