图片预加载

方法:多张图片的预加载

function preload(arr){

    var newimages=[], loadedimages=0

    var postaction=function(){}  //此处增加了一个postaction函数

if(arr.length == 0) setTimeout(()=>{postaction(newimages)},5)

    function imageloadpost(){

        loadedimages++

        if (loadedimages==arr.length){

            postaction(newimages) //加载完成用我们调用postaction函数并将newimages数组做为参数传递进去

        }

    }

for (var i=0; i

         newimages[i] = new Image()

        newimages[i].src=arr[i]

        newimages[i].onload=function(){

            imageloadpost()

        }

        newimages[i].onerror=function(){

            imageloadpost()

        }

    }

    return { //此处返回一个空白对象的done方法

        done:function(f){

            postaction=f || postaction

        }

    }

}

你可能感兴趣的:(图片预加载)