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中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
js 调用百度地图api并在地图上进行打点添加标注
May 13 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
Feb 09 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
Nov 01 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 Javascript
小程序实现点击tab切换左右滑动
Nov 16 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
webpack的移动端适配方案小结
Jul 25 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
德生PL990的分析评价
2021/03/02 无线电
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
如何让CI框架支持service层
2014/10/29 PHP
php简单图像创建入门实例
2015/06/10 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
js字符串转成JSON
2013/11/07 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
javascript 数组操作详解
2015/01/29 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
深入理解js中this的用法
2016/05/28 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
database面试题
2013/03/28 面试题
银行门卫岗位职责
2013/12/29 职场文书
生产助理岗位职责
2014/06/18 职场文书
商务经理岗位职责
2014/08/03 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
考试没考好检讨书
2015/05/06 职场文书
民间借贷借条如何写
2015/05/26 职场文书