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 相关文章推荐
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
Nov 02 Javascript
完善的jquery处理机制
Feb 21 Javascript
正则表达式替换html元素属性的方法
Nov 26 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
Mar 28 Javascript
Vue 理解之白话 getter/setter详解
Apr 16 Javascript
vue实现简单的日历效果
Sep 24 Javascript
js实现上传按钮并显示缩略图小轮子
May 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
PHP网站提速三大“软”招
2006/10/09 PHP
PHP脚本中include文件出错解决方法
2008/11/20 PHP
php判断表是否存在的方法
2015/06/18 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
2012/01/15 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
JS获取文件大小方法小结
2015/12/08 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
js里面的变量范围分享
2020/07/18 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
python之wxPython应用实例
2014/09/28 Python
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
军训自我鉴定
2014/01/22 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
学习计划是什么
2019/04/30 职场文书