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 相关文章推荐
拖动布局之保存布局页面cookies篇
Oct 29 Javascript
js中巧用cssText属性批量操作样式
Mar 13 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
js中typeof的用法汇总
Dec 12 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
May 31 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
从0开始学Vue
Oct 27 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
详解vue后台系统登录态管理
Apr 02 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
php程序员应具有的7种能力小结
2014/11/27 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
js实现input框文字动态变换显示效果
2015/08/19 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
python list排序的两种方法及实例讲解
2017/03/20 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
python set内置函数的具体使用
2019/07/02 Python
通过实例解析Python调用json模块
2019/12/11 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python如何获取文件指定行的内容
2020/05/27 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
总经理秘书的岗位职责
2013/12/27 职场文书
军训 自我鉴定
2014/02/03 职场文书
护士医德医风自我评价
2014/09/15 职场文书
北京英文导游词
2015/02/12 职场文书