JS判断图片是否加载完成三种方式

摘要:
函数imgLoad{vartimer=setInterval;}img加载;判断缓存中是否已存在图像//事实证明,完整的属性不仅可以判断图像是否已成功加载,还可以判断该图像是否已存储在控制台中。缓存中的infosetTimeout2.加载事件//图像加载成功。事件img1.onload=function(){alert;p1.innerHTML=“图像加载成功”;}测试,所有浏览器都显示“已加载”,表示所有浏览器都支持img加载事件3。Readystatechange事件readyState已完成并加载,表示图像已加载。

1.img的complete属性

轮询不断监测img的complete属性,如果为true则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持

<p id="p1"></p>
<img id="img1"src="../Images/1.jpg" />
<script>
    functionimgLoad(img, callcack) {
        vartimer =setInterval(function() {
            if(img.complete) {//判断图片是否加载完成
callcack(img)
                clearInterval(timer);
            }
        }, 50);
    }
    imgLoad(img1, function() {
        p1.innerHTML = '加载完成';
    });
</script>

判断图片是否在缓存中已经存在

<p id="p1"></p>
<img id="img1"src="../Images/1.jpg" />
<img id="img2" />
<script>
    //证明complete 属性不仅可以判断图片是否加载成功,还可以判断图片是否已经在缓存中存在
console.info(img1.complete)
    setTimeout(function() {
        if(img1.complete) {
            console.info('加载成功' +img1.src);
            img2.src =img1.src;
            if(img2.complete) {
                console.info('img2加载成功');
            }
        } else{
        }
    }, 100);
</script>

2.Load事件

<p id="p1"></p>
<img id="img1"src="../Images/1.jpg" />
<script>
    //图片加载成功触发事件
img1.onload = function() {
        alert(3);
        p1.innerHTML = "图片加载成功";
    }
</script>

测试,所有浏览器都显示出了“loaded”,说明所有浏览器都支持img的load事件

3.readystatechange事件

readyState为complete和loaded则表明图片已经加载完毕。测试IE6-IE10支持该事件,其它浏览器不支持。

<img id="img1"src="http://pic1.win4000.com/wallpaper/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>

免责声明:文章转载自《JS判断图片是否加载完成三种方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在VB语言中,DOEVENTS的具体的用法和含义swoole cpu占用很高 porcess下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js基础④

一、运算符 1、算术运算符 设y=5 ps:5.5%2=1.5 非整数 2、赋值运算符 设x=10,y=5 3、比较运算符 设x=5 4、逻辑运算符 设x=6 , y=3 5、条件运算符 JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。 语法: variablename=(condition)?value1:value2...

【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法。它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) 在callS...

如何在TypeScript中使用JS类库

使用流程 1.首先要清除类库是什么类型,不同的类库有不同的使用方式 2.寻找声明文件 JS类库一般有三类:全局类库、模块类库、UMD库。例如,jQuery是一种UMD库,既可以通过全局方式来引用,也可以模块化引用。 声明文件 当我们要使用一个类库时,需要ts声明文件,对外暴露API,有时候声明文件在源码中,大部分是单独提供额外安装。比如jQuery需要额外...

js 时间戳转换为‘yyyy-MM-dd hh:mm’格式(es6语法)

function formatDate(date,fmt) { if(/(y+)/.test(fmt)){ fmt = fmt.replace(RegExp.$1,(date.getFullYear()+'').substr(4-RegExp.$1.length)); } let o = { 'M+':date.getMonth...

js中对表格的操作总结

 inserRow()和insertCell()方法 首先,表格行索引从0开始。 inserRow():  这个函数将新行添加到index的那一行前, 比如insertRow(0),是将新行添加到第一行之前。 默认的insertRow()函数相当于 insertRow(-1),将新行添加到表的最后。 objTable.insertRow (objTabl...

js中的数据类型,以及如何检测数据类型

基本数据类型:string,number,boolean,null,undefined,symbol 引用数据类型:object(array,function...) 常用的检测数据类型的方法一般有以下三种: 1.typeof 一般主要用来检测基本数据类型,因为它检测引用数据类型返回的都是object 还需要注意的一点是:typeof检测null返回的也是...