jQuery简单实现图片预加载

2020-05-24 21:21:59易采站长站整理

jQuery实现图片预加载

JS代码


$(function(){
loadImg("https://www.easck.com/d/file/200524/20200524211910145.jpg",addImg);
function loadImg(url,callback){
var img = new Image();
img.onload = function(){
img.onload = null;
callback(img);
}
img.src=url;
img.width ="202";
img.height = "202";
img.attr("defaulturl","../images/img.png");
if(){}
}
function addImg(img){
$(img).appendTo($(".imgload li"))
}
})

HTML:


<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片预加载</title>
<link rel="stylesheet" type="text/css" href="css/index.css">
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>

<div class="imgload">
<ul>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
<li class="fl"></li>
</ul>
</div>
</body>
</html>

其他实例


function loadimg(arr,funLoading,funOnLoad,funOnError){
var numLoaded=0,
numError=0,
isObject=Object.prototype.toString.call(arr)==="[object Object]" ? true : false;

var arr=isObject ? arr.get() : arr;
for(a in arr){
var src=isObject ? $(arr[a]).attr("data-src") : arr[a];
preload(src,arr[a]);
}

function preload(src,obj){
var img=new Image();
img.onload=function(){
numLoaded++;
funLoading && funLoading(numLoaded,arr.length,src,obj);
funOnLoad && numLoaded==arr.length && funOnLoad(numError);
};
img.onerror=function(){
numLoaded++;
numError++;
funOnError && funOnError(numLoaded,arr.length,src,obj);
}
img.src=src;
}

}

参数说明:
  arr:可以是存放图片路径的一个数组,也可以是选取到的img的jquery对象;
  funLoading:每一个单独的图片加载完成后执行的操作;
  funOnLoad:全部图片都加载完成后的操作;
  funOnError:单个图片加载出错时的操作。

懒加载,


var imgonload=function(errors){