图片预加载示例
参考文章:http://www.cnblogs.com/sailxc/archive/2011/06/15/2081271.html
代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>图片预加载</title>
<style type="text/css">
* { margin:0;padding:0; }
body{ font:12px/1.5 arial; }
.img_box { border:2px solid orange; padding:10px; margin-bottom:20px; }
</style>
</head>
<body>
<div id="img_box" class="img_box" imgIndex=""></div>
<input type="button" id="prev" value="上一张" />
<input type="button" id="next" value="下一张" />
<script type="text/javascript" src="js/jquery-1.6"></script>
<script type="text/javascript">
var imgUrlArr=['http://sp1.yokacdn.com/photos/41/d4/675558/photo_74768_500.jpg','http://img.jujoy.com/Img/Img/ShoujiComCn/76/20057264156594.jpg','http://blogcache.artron.net/2009/03/30/70748_200903300715421YO92.jpg','http://imdiy.cn/wp-content/uploads/2008/03/fengjing.jpg'],
$imgBox=$('#img_box'),
$prevBtn=$('#prev'),
$nextBtn=$('#next'),
imgLen=imgUrlArr.length,
preLoadImg,
loadImg,
index=0,
prevImageIndex,
nextImageIndex;
prevImageIndex=function(index){
return index=(index===0)?(imgLen-1):(index-1);
};
nextImageIndex=function(index){
return index=(index===imgLen-1)?0:(index+1);
};
//预加载图片
preLoadImg=function(url,index,callback){
var img=new Image();
img.src=url;
$imgBox.text('图片加载中...');
if(img.complete){
callback.call(img,index);
return;
}
img.onload=function(){
callback.call(img,index);
};
};
//加载图片完成后执行函数
loadImg=function(index){
$imgBox.text('').attr('imgIndex',index).append(this);
};
//事件绑定
$prevBtn.click(function(e){
index=parseInt($imgBox.attr('imgIndex'));
preLoadImg(imgUrlArr[index],prevImageIndex(index),loadImg);
});
$nextBtn.click(function(e){
index=parseInt($imgBox.attr('imgIndex'));
preLoadImg(imgUrlArr[index],nextImageIndex(index),loadImg);
});
//初始化
if($imgBox.attr('imgIndex')===''){
preLoadImg(imgUrlArr[index],index,loadImg);
}
</script>
</body>
</html>

浙公网安备 33010602011771号