使用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 相关文章推荐
JQuery之拖拽插件实现代码
Apr 14 Javascript
event对象获取方法总结在google浏览器下测试
Nov 03 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
Javascript创建类和对象详解
May 31 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
原生JavaScript实现Ajax异步请求
Nov 19 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
Jul 03 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php eval函数用法总结
2012/10/31 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
PHP类的特性实例分析
2016/09/28 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
Python编写Windows Service服务程序
2018/01/04 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python实现flappy bird小游戏
2018/12/24 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
python的setattr函数实例用法
2020/12/16 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
数学检讨书1000字
2014/02/24 职场文书
小学生开学感言
2014/02/28 职场文书
创文明城市标语
2014/06/16 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
说谎欺骗人检讨书300字
2014/11/18 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
学校施工安全责任书
2015/01/29 职场文书
教师个人发展总结
2015/02/11 职场文书