js 判断图片是否加载完以及实现图片的预下载


Posted in Javascript onAugust 14, 2014

创建一个Image对象,实现图片的预下载,如果图片已经存在于浏览器缓存,直接调用回调函数,使用onload事件可以判断图片是否加载完成

function loadImage(url, callback) { 
var img = new Image(); //创建一个Image对象,实现图片的预下载 
img.src = url; 

if(img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数 
callback.call(img); 
return; // 直接返回,不用再处理onload事件 
} 
img.onload = function () { //图片下载完毕时异步调用callback函数。 
callback.call(img);//将回调函数的this替换为Image对象 
}; 
};
</pre><pre code_snippet_id="395795" snippet_file_name="blog_20140617_3_4709132" name="code" class="html"><pre name="code" class="html"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>判断图片是否加载完成</title> 

</head> 
<body> 
<img id="img2" src="images/1.jpg" /> 
</body> 
</html> 
<script language="JavaScript"> 
document.getElementById("img2").onload = function () { 
alert("图片加载已完成"); 
} 
</script>
Javascript 相关文章推荐
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
Aug 04 Javascript
JavaScript开发规范要求(规范化代码)
Aug 16 Javascript
javascript getElementsByTagName
Jan 31 Javascript
jQuery页面滚动浮动层智能定位实例代码
Aug 23 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
Aug 06 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 Javascript
jquery实现简单的表单验证
Nov 17 Javascript
详解angular中通过$location获取路径(参数)的写法
Mar 21 Javascript
微信小程序删除处理详解
Aug 16 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 Javascript
js创建表单元素并使用submit进行提交
Aug 14 #Javascript
使用typeof判断function是否存在于上下文
Aug 14 #Javascript
java、javascript实现附件下载示例
Aug 14 #Javascript
js怎么判断flash swf文件是否加载完毕
Aug 14 #Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 #Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 #Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 #Javascript
You might like
php下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
2009/12/22 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
原生js实现购物车功能
2020/09/23 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
python 内置模块详解
2019/01/01 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
Python中zip函数如何使用
2020/06/04 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
护士个人简历自荐信
2013/10/18 职场文书
大学生简历的个人自我评价
2013/12/04 职场文书
学校节能减排倡议书
2014/05/16 职场文书
师范生见习总结范文
2015/06/23 职场文书
小学生运动会广播
2015/08/19 职场文书
Mysql如何查看是否使用到索引
2022/12/24 MySQL