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 sortable效果 代码有错但值得看看
Nov 05 Javascript
THREE.JS入门教程(4)创建粒子系统
Jan 24 Javascript
使用jquery实现IE下按backspace相当于返回操作
Mar 18 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
jQuery+css实现的切换图片功能代码
Jan 27 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
Jun 22 Javascript
js+css3制作时钟特效
Oct 16 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 Javascript
react antd实现动态增减表单
Jun 03 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
PHP中路径问题的解决方案
2006/10/09 PHP
COM in PHP (winows only)
2006/10/09 PHP
一步一步学习PHP(8) php 数组
2010/03/05 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
php数组键值用法实例分析
2015/02/27 PHP
php防止sql注入简单分析
2015/03/18 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
浅析javascript中function 的 length 属性
2014/05/27 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
js实现一个页面多个倒计时的3种方法
2019/02/25 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
Python列表推导式实现代码实例
2020/09/09 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
美工的岗位职责
2013/11/14 职场文书
实习心得体会
2014/01/02 职场文书
前处理班长职位说明书
2014/03/01 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python