js 预加载图片image()函数

创建一个Image对象:var a=new Image();    定义Image对象的src: a.src=”xxx.gif”;    这样做就相当于给浏览器缓存了一张图片。

图像对象:

建立图像对象:图像对象名称=new Image([宽度],[高度])

图像对象的属性: border complete height hspace lowsrc name src vspace width

图像对象的事件:onabort onerror onkeydown onkeypress onkeyup onload

需要注意的是:src 属性一定要写到 onload 的后面,否则程序在 IE 中会出错。

参考代码:

var img=new Image();

  1. img.onload=function(){alert("img is loaded")};
  2. img.onerror=function(){alert("error!")};
  3. img.src="http://www.abaonet.com/img.gif";
  4. function show(){alert("body is loaded");};
  5. window.onload=show;

运行上面的代码后,在不同的浏览器中进行测试,发现 IE 和 FF 是有区别的,在 FF 中,img 对象的加载包含在 body

的加载过程中,既是 img加载完之后,body 才算是加载完毕,触发 window.onload 事件。

在 IE 中,img 对象的加载是不包含在 body 的加载过程之中的,body 加载完毕,window.onload 事件触发时,img

对象可能还未加载结束,img.onload事件会在 window.onload 之后触发。

根据上面的问题,考虑到浏览器的兼容性和网页的加载时间,尽量不要在 Image 对象里放置过多的图片,否则在 FF 下

会影响网页的下载速度。当然如果你在 window.onload 之后,执行预加载函数,就不会有 FF 中的问题了。

可以通过Image对象的complete 属性来检测图像是否加载完成(每个Image对象都有一个complete属性,当图像处于

装载过程中时,该属性值false,当发生了onload、onerror、onabort中任何一个事件后,则表示图像装载过程结束(不管成

没成功),此时complete属性为true)

  1. var img = new Image();
  2. img.src = oImg[0].src = this.src.replace(/small/,"big");
  3. oDiv.style.display = "block";
  4. img.complete ? oDiv.style.display = "none" : (oImg[0].onload = function() {oDiv.style.display = "none"})

注:

ie 火狐等大众浏览器均支持 Image对象的onload事件。

ie8及以下、opera 不支持onerror事件

模拟地址http://js.fgm.cc/learn/google/

时间: 2024-11-05 20:14:06

js 预加载图片image()函数的相关文章

用javascript预加载图片、css、js的方法研究

预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提升用户体验.在用到一些大图片展示的时候,预加载大图是很不错的方法,图片更快的被呈现给用户.不多说了,作为一个前端攻城师都懂的,下面分享我做的测试和得到的结果. 先说需要知道的服务器返回的status code:status-code: 200 - 客户端请求成功status-code: 304 -

js中预加载图片

由于网页的一些图片加载都需要很长时间,所以为了缓解图片加载慢的问题,页面可以先预加载图片,代码如下: /*预加载图片*/var imgList = []; var imgArr = ["bg02.gif","video_btm.jpg"]; for(var i=0;i<imgArr.length;i++){ var img = new Image(); img.src = imgArr[i]; imgList.push(img); }

jQ禁止右键点击、隐藏搜索文本框文字、在新窗口中打开链接、检测浏览器、预加载图片、页面样式切换、所有列等高、动态控制页面字体大小、获得鼠标指针的X值Y值、验证元素是否为空、替换元素、延迟加载、验证元素是否存在于Jquery集合中、使DIV可点击、克隆对象、使元素居中、计算元素个数、使用Google主机上的Jquery类库、禁用Jquery效果、解决Jquery类库与其他Javascript类库冲突

1. 禁止右键点击 代码如下: $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); }); 2. 隐藏搜索文本框文字 代码如下: $(document).ready(function() { $("input.text1").val("Enter your search text here"); textFill($

微信小程序预加载图片以及占位图片

wxml页面 利用三目运算:代码如下: 1 <image src="{{ima?ima:'../../images/4.jpg'}}" /> (../../images/4.jpg)这里意思是预加载图片大概是一张黑白色的类似于 js代码如下: Page({ /** * 页面的初始数据 */ data: { ima: "", }, /** * 生命周期函数--监听页面加载 */ internet:function(){ setTimeout(functio

预加载图片

1 //定义预加载图片列表的函数(有参数) 2 jQuery.preloadImages = function(){ 3 //遍历图片 4 for(var i = 0; i<arguments.length; i++){ 5 jQuery("<img>").attr("src", arguments[i]); 6 } 7 } 8 // 你可以这样使用预加载函数 9 $.preloadImages("images/logo.png"

Javascript实现图片预加载【回调函数,多张图片】

使用JS实现一组图片动画效果或者使用HTML5 Canvas渲染一系列图片等案例中,需要图片全部加载完成方可运行动画效果.此时程序中就会涉及多张图片预加载代码.当接二连三的案例中都涉及图片预加载时,就需要考虑把这个功能封装为一个通用方法. (1)下面为JS实现图片预加载方法loadImages(): Js代码   //实现一系列图片的预加载 //参数sources:图片信息关联数组 //参数callback:回调函数——图片预加载完成后立即执行此函数. function loadImages(s

js预加载/延迟加载

Pre loader 预加载一般有两种常用方式:xhr和动态插入节点的方式.动态插入节点是最为简单也最为广泛的一种异步加载方式,然后使用动态插入节点方法加载的文件都会 在加载后立即执行,javascript的执行一方面会占用浏览器js执行进程,另一方面也可能改变页面结构,而css 的执行更有可能让整个页面变化.xhr方式虽然不会执行脚本,但是由于同域的限制 Lazy loader方式在一些图片非常多的网站中非常有用,在浏览器可视区域外的图片不会被载入,直到用户将页面滚动到它们所在的位置才加载,这

JS -- 下滑加载图片

1 <!DOCTYPE html> 2 <html lang="cn"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下滑加载图片</title> 6 <style type="text/css"> 7 #imglist{ 8 width: 100%; 9 margin: 0 auto; 10 } 11 #imglist

js预加载loading的canvas写法

页面html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>不需要页面图片显示加载</title> <style> html{ background: gray; } #loading{ z-index: 200; position: fixed; top: 50%; left: 50%; border:1px solid re