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 相关文章推荐
5分钟理解JavaScript中this用法分享
Nov 09 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
JS数组排序方法实例分析
Dec 16 Javascript
vue2滚动条加载更多数据实现代码
Jan 10 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
Dec 12 Javascript
js实现验证码功能
Jul 24 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
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
php 文件上传实例代码
2012/04/19 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
js实现转动骰子模型
2019/10/24 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python求解平方根的方法
2015/03/11 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python素数筛选法浅析
2018/03/19 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
用python制作个视频下载器
2021/02/01 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
JPA的特点
2014/10/25 面试题
预备党员的自我评价
2014/03/12 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python