私はスライドショーフレームワークを構築していますが、アニメーション機能を循環させる最善の方法を考え出すのに問題がありました。setInterval()
を使用できましたが、リソースを大量に消費することなく繰り返してください。関数を無期限に、好ましくはsetInterval()を使用せずに繰り返します。
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"
]
}
'setInterval()'の問題点は何ですか? – Andreas
'setInterval'に問題があり、何らかのイベント(意図しない言い回しは意図していません)をjQueryアニメーションと混同しないでください。 – Alnitak
次の画像が' for..of'でアニメーションを開始する前に現在の画像がアニメーションを完了するのを待っていますか?ループ? – guest271314