JavaScript怎么判断图片是否加载完成以便获取其尺寸


Posted in Javascript onMay 08, 2014

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

一、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则表明图片已经加载完毕,停止轮询。该属性所有浏览器都支持。
Javascript 相关文章推荐
jQuery toggle()设置CSS样式
Nov 05 Javascript
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
Jul 26 Javascript
JS 控制小数位数的实现代码
Aug 02 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
JavaScript检测并限制复选框选中个数的方法
Aug 12 Javascript
jQuery使用$.ajax进行即时验证实例详解
Dec 11 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
微信小程序实现圆形进度条动画
Nov 18 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 Javascript
js动态删除div元素基本思路及实现代码
May 08 #Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 #Javascript
jquery查找tr td 示例模拟
May 08 #Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 #Javascript
JavaScript二维数组实现的省市联动菜单
May 08 #Javascript
javascript中setTimeout的问题解决方法
May 08 #Javascript
在JavaScript中使用timer示例
May 08 #Javascript
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
一个改进的UBB类
2006/10/09 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
深入掌握include_once与require_once的区别
2013/06/17 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
php中的异常和错误浅析
2017/05/03 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
js Function类型
2011/12/04 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
Python 转义字符详细介绍
2017/03/21 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
linux 下selenium chrome使用详解
2020/04/02 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
2021/01/05 Python
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
综治宣传月活动总结
2014/04/28 职场文书
法人任命书范本
2014/06/04 职场文书
聚会通知怎么写
2015/04/23 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript