使用JavaScript判断图片是否加载完成的三种实现方式


Posted in Javascript onMay 04, 2014

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以。有三种方式实现,下面一一介绍。

一、load事件

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - load event</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.win4000.com/wallpaper/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.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> 
</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.win4000.com/wallpaper/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则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持。
使用JavaScript判断图片是否加载完成的三种实现方式 
Javascript 相关文章推荐
js过滤数组重复元素的方法
Sep 05 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
jquery uploadify 在FF下无效的解决办法
Sep 26 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
jQuery css() 方法动态修改CSS属性
Sep 25 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
p5.js入门教程之平滑过渡(Easing)
Mar 16 Javascript
详解webpack自定义loader初探
Aug 29 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
Apr 04 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
微信小程序button标签open-type属性原理解析
Jan 21 Javascript
微信小程序swiper实现文字纵向轮播提示效果
Jan 21 Javascript
使用JavaScript获取电池状态的方法
May 03 #Javascript
JavaScript打印网页指定区域的例子
May 03 #Javascript
js检测输入内容全为空格的方法
May 03 #Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
May 03 #Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 #Javascript
js日期联动示例
May 02 #Javascript
jQuery实现的多选框多级联动插件
May 02 #Javascript
You might like
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
js异步加载的三种解决方案
2013/03/04 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python中的变量如何开辟内存
2018/06/26 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
WoolOvers爱尔兰:羊绒、羊毛和棉针织品
2017/01/04 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
电话销售经理岗位职责
2013/12/07 职场文书
人事行政主管岗位职责
2013/12/22 职场文书
公司租车协议书
2015/01/29 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
同学聚会祝酒词
2015/08/10 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏