使用JavaScript判断图片是否加载完成的三种实现方式


Posted in Javascript onMay 04, 2014

有时需要获取图片的尺寸,这需要在图片加载完成以后才可以。有三种方式实现,下面一一介绍。

一、load事件

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>img - load event</title> 
</head> 
<body> 
<img id="img1" src="http://pic1.win4000.com/wallpaper/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.win4000.com/wallpaper/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.win4000.com/wallpaper/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判断图片是否加载完成的三种实现方式 
Javascript 相关文章推荐
热点新闻滚动特效的js代码
Aug 17 Javascript
简单选项卡 js和jquery制作方法分享
Feb 26 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
Jul 18 Javascript
VueJs路由跳转——vue-router的使用详解
Jan 10 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
Mar 08 Javascript
详解Vue 非父子组件通信方法(非Vuex)
May 24 Javascript
JavaScript正则表达式和级联效果
Sep 14 Javascript
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
jQuery实现滑动开关效果
Aug 02 jQuery
使用JavaScript获取电池状态的方法
May 03 #Javascript
JavaScript打印网页指定区域的例子
May 03 #Javascript
js检测输入内容全为空格的方法
May 03 #Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
May 03 #Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 #Javascript
js日期联动示例
May 02 #Javascript
jQuery实现的多选框多级联动插件
May 02 #Javascript
You might like
黑夜路人出的几道php笔试题
2009/08/04 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
Python2中的raw_input() 与 input()
2015/06/12 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
python实现简单坦克大战
2020/03/27 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
Python类及获取对象属性方法解析
2020/06/15 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
用python实现学生管理系统
2020/07/24 Python
详解如何修改python中字典的键和值
2020/09/29 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
学生思想表现的评语
2014/01/30 职场文书
运动会解说词100字
2014/01/31 职场文书
高二物理教学反思
2014/02/08 职场文书
职业女性的职业规划
2014/03/04 职场文书
青年文明号汇报材料
2014/12/23 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
Java SSM配置文件案例详解
2021/08/30 Java/Android