在做一些tips效果,或者是一些图片浏览效果时,图片开始是隐藏的,当用户进行一定的操作时,图片会根据需要显示出来。但图片文件都相对比较大,如果一下子都显示出来,很耗时间和流量,如果都不显示,等触发一定事件时再加载,用户体验又不太好,增加用户的等待时间。
权 衡一下利弊,可以有选择的利用JavaScript预加载一些需要的图片,先将其装入DOM,等到需要的时候,直接调用,省掉等待的时间,直接显示出来。 JavaScript里的Image对象可以很好的实现这一需求,在FF下通过alert(img对象)可以看到“object HTMLImageElement“内容,Image对象可以直接利用append添加到body里面去,调用十分方便。
图像对象:
网页中的图像均会被自动看作图像对象,并依顺序,分别表示为document.images[0],document.images[1]...
建立图像对象:
格式:
图像对象名称=new Image([宽度],[高度])
图像对象的属性:
border complete height hspace lowsrc name src vspace width
图像对象的事件:
onabort onerror onkeydown onkeypress onkeyup onload
需要注意的是:src属性一定要写到onload的后面,否则程序在IE中会出错。
参考代码:
程序代码
var img=new Image();
img.onload=function(){alert("img is loaded")};
img.onerror=function(){alert("error!")};
img.src="http://i2.cdn.turner.com/cnn/video/tech/2009/02/07/levs.ship.treasure.cnn.88x49.jpg";
function show(){alert("body is loaded");};
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中的问题了。
示例:
HTML代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css" media="all">
div{border:#aaaaaa 3px solid;width:200px;padding:2px;margin:2px 9px;font-size:12px;line-height:22px;color:#999999;}
.ipt1{width:160px;font-size:12px;color:#1F6478;border:#999999 1px solid;margin-left:9px;}
.ipt2{border:#999999 1px solid;margin-left:6px;color:#666666}
p{margin:0px;padding:0px;background-image:url(http://www.wxwdesign.cn/attachments/month_0809/v2008925193118.gif);background-position:center;background-repeat:no-repeat;width:200px;height:200px;text-align:center;font-size:12px;color:#999999;line-height:26px;}
</style>
<script language="javascript" type="text/javascript">
function preloadimg(url,obj,ipt){
var img=new Image();
obj.innerHTML="<p>图片加载中...</p>";
img.onload=function(){obj.innerHTML="";obj.style.width=String(img.width)+"px";ipt.style.width=String(img.width-40)+"px";obj.appendChild(img);};
img.onerror=function(){obj.innerHTML="图片加载错误,请检查网络或URL地址!"};
img.src=url; //img.src一定要写在img.onload之后,否则在IE中会出现问题
}
function show(){
var div=document.getElementsByTagName("div")[0];
var input=document.getElementsByTagName("input");
preloadimg("http://book.csdn.net/smallimg/csdbblo2.gif",div,input[0]);
input[0].onclick=function(){this.value=""};
input[1].onclick=function(){preloadimg(input[0].value,div,input[0]);}
}
window.onload=show;
</script>
<title>JavaScript获取图片大小——wxwdesign.cn</title>
</head>
<body>
<div></div>
<br />
<input type="text" value="请输入图片URL地址" class="ipt1"/><input type="button" value="加载" class="ipt2"/>
</body>
</html>
分享到:
相关推荐
为了在实际项目中应用这个预加载功能,我们通常会在DOM加载完成后(即`$(document).ready()`)调用`preloadImages`函数,确保所有元素都已准备就绪。例如: ```javascript $(document).ready(function() { var ...
在网页设计和开发中,图片预加载是一种优化用户体验的重要技术,尤其对于图像密集型的网站而言。PreLoad 插件正是这样一个工具,它允许开发者高效地管理图片的加载过程,无论是有序加载还是无序加载,都能确保图片在...
在IT行业中,预加载图片是一项重要的优化技术,特别是在网页设计和开发中,它能提高用户体验,使得图片在用户实际浏览前就已经加载完毕。本话题主要围绕"jQuery 预加载图片"这一主题展开,我们将深入探讨jQuery库...
在这个例子中,我们为每个URL创建一个新的图像对象,设置其源URL,然后当图片加载完成后,会在控制台打印一条消息。 值得注意的是,预加载并非总是最佳策略,因为它会占用网络带宽。因此,我们需要谨慎选择要预加载...
JavaScript图片预加载是一种优化网页性能的技术,特别是在网页中包含大量图片或者有动态加载图片需求时。这种方法通过在用户实际查看图片之前,提前加载图片资源,减少用户等待时间,提升用户体验。这里我们将深入...
在网页设计中,图片预加载是一种优化用户体验的重要技术,它使得用户在浏览页面时能够快速地看到图片,避免了图片加载过程中出现的空白或者闪烁现象。本文将深入探讨如何使用jQuery来实现这一功能,同时会涉及到...
2. 图片对象:使用HTML `<img>` 标签的 `src` 属性和 `onload` 事件,以及JavaScript中的 `Image` 对象进行预加载。 3. 队列管理:有序加载可能涉及到一个队列系统,将图片按顺序加入队列,然后逐个加载。 4. 进度...
以上代码创建了一个预加载实例,当所有图片加载完成后,开发者可以通过监听`load`事件来进行后续处理,如将预加载的图片添加到DOM中。 总的来说,`jQuery-preloading-with-image`插件简化了预加载图片的实现,通过...
首先,图片预加载的基本原理是在页面加载时,提前请求图片资源,将其缓存到浏览器中,以便用户在实际查看图片时可以快速显示出来。这样可以避免用户在滚动页面时看到空白的图片占位符,提升用户体验。 在jQuery中,...
此外,可以使用`.each()`遍历需要预加载的元素,通过创建`Image`对象并设置其`src`属性来加载图片。对于非图片资源,可以使用Ajax请求进行预加载。 `css`目录下的样式表文件主要负责预加载的视觉呈现。预加载过程中...
图片预加载技术是Web开发中一个重要的优化策略,特别是在处理大量图像或者图片密集型网站时。它能够提高用户体验,减少用户等待时间,因为浏览器在页面加载时会预先下载部分或全部图片,即使这些图片在当前视口中并...
在上述代码中,我们创建了一个`Image`对象,并设置了它的`src`属性为要预加载的图片URL。当图片加载完成后,`onload`事件会被触发,你可以在这里执行一些后续操作,比如替换占位符或者更新进度条。 对于`jquery图片...
在JavaScript中,我们可以使用`<img>`元素或`Image`对象来处理图像。`img`文件夹很可能包含了案例所需的图片资源。开发者可以通过JavaScript改变图片的源URL、透明度、尺寸,或者实现图片的预加载、懒加载等技术。...
此外,这个项目还涉及了jQuery库,这是一个广泛使用的JavaScript库,提供了丰富的DOM操作、事件处理、动画效果等功能,使得图片预加载的实现更加简洁和高效。同时,由于jQuery兼容各种浏览器,所以这个预加载解决...
插件可让您在 DOM 加载前后预加载图像。 测试: IE6、IE7、IE8、IE9+、FF、Chrome、Safari 用法 回呼 以下是可用的回调,您可以通过将设置对象传递给 imgpreload 方法来全局更改它们或覆盖默认值。 $.fn....
基本的JavaScript图片预加载方式是创建一个`<img>`元素,设置其`src`属性为待加载图片的URL,然后将其添加到DOM中。如下所示: ```javascript function preloadImage(url) { var img = new Image(); img.src = ...
图像预加载器 将图像数组预加载到body元素底部的dom var preload = require ( 'image-preloadr' ) ;// preload your images...preload ( [ 'public/img/img1.png' , 'public/img/img2.png' ])运行测试服务器端修改...
在jQuery中,图片预加载主要通过JavaScript的`new Image()`对象来实现。这个对象允许我们在图片实际出现在页面之前创建一个新的图片实例,并设置其`src`属性为待加载的图片URL。这样,浏览器就会在后台开始下载图片...