/*
* @Description: 预加载
* @Author: wangrui
* @Date: 2021-03-02 13:35:34
*/
class PreLoad{
constructor(){
this.images=[]
this.opts={
success:null,
fail:null
}
}
preLoadFn(images,opts){
this.images=typeof(images)==='string'?[images]:images;
this.opts={...this.opts,...opts};
let count=0;
for(var i=0;i<this.images.length;i++){
if(typeof(this.images[i])!=='string')return;
const imageFn=new Image();
imageFn.setAttribute('crossOrigin', 'anonymous');
imageFn.onload=()=>{
this.commonFn(count);
count++;
}
imageFn.onerror=()=>{
this.commonFn(count);
count++;
}
imageFn.src=this.images[i];
}
}
commonFn(count){
this.opts.fail&&this.opts.fail()
if(this.images.length-1===count){
this.opts.success&&this.opts.success()
}
}
}
export default new PreLoad();