方法:多張圖片的預(yù)加載
function preload(arr){
? ? var newimages=[], loadedimages=0
? ? var postaction=function(){}? //此處增加了一個(gè)postaction函數(shù)
if(arr.length == 0) setTimeout(()=>{postaction(newimages)},5)
? ? function imageloadpost(){
? ? ? ? loadedimages++
? ? ? ? if (loadedimages==arr.length){
? ? ? ? ? ? postaction(newimages) //加載完成用我們調(diào)用postaction函數(shù)并將newimages數(shù)組做為參數(shù)傳遞進(jìn)去
? ? ? ? }
? ? }
for (var i=0; i<arr.length; i++){
?????????newimages[i] = new Image()
? ? ? ? newimages[i].src=arr[i]
? ? ? ? newimages[i].onload=function(){
? ? ? ? ? ? imageloadpost()
? ? ? ? }
? ? ? ? newimages[i].onerror=function(){
? ? ? ? ? ? imageloadpost()
? ? ? ? }
? ? }
? ? return { //此處返回一個(gè)空白對(duì)象的done方法
? ? ? ? done:function(f){
? ? ? ? ? ? postaction=f || postaction
? ? ? ? }
? ? }
}