I am building a slide show framework and was having trouble figuring out the best way to cycle the animation function, I know I could use setInterval()
but was wondering if there was a better way to repeat it without being to resource intensive.
JAVASCRIPT:
class slideShow {
constructor(imgDir, dataList) {
this.imgDir = imgDir;
this.dataList = dataList;
this.settings = 0;
this.imgList = 0;
this._init();
}
_init(){
$.getJSON(`${this.imgDir}/${this.dataList}.json`, (data)=>{
this.settings = data.settings;
this.imgList = data.imgList;
})
}
start(){
for(let img of this.imgList){
$(this.settings.selector).fadeOut(this.settings.fadeTime, ()=>{
$(this.settings.selector).attr("src",`${this.imgDir}/${img}`);
$(this.settings.selector).fadeIn(this.settings.fadeTime);
});
}
}
}
JSON:
{
"settings":{
"selector":"#slideShow",
"fadeTime":1000
},
"imgList":[
"slide_01.jpg",
"slide_02.jpg",
"slide_03.jpg"
]
}