我有18張圖像,我只希望在任何給定時間顯示5個圖像。我每兩秒鐘換出一幅新圖像而不顯示重複內容。我的HTML是硬編碼並從s3
桶中提取。遞增計數器然後在達到一定限制時重置該計數器
<img class="activeImg" src="img_1.jpg />
<img src="img_2.jpg />
<img src="img_3.jpg />
<img src="img_4.jpg />
...
<img src="img_9.jpg />
我有一個遞歸函數setTimeout
正在調用moveCounter
。 moveCounter
只需增加1,並在每次調用時都會替換圖像。我將activeImg
類添加到img
中,然後在移到下一個圖像之前將其刪除。
最終目標是從0 ... 5開始計數,然後無限地回落到5 ... 0。我所做的只是將值附加到圖像名稱,從而替換圖像而不顯示重複。
問題是有重疊,我得到一個重複每當counter === imgId
。
// my recursive settimeout function fires off and adds an activeImg class to a random image element, then also fires off the replaceImage function
var counter = 0;
var imgId = 18;
// increment counter and append new img
function replaceImage(imgId){
if (counter >= 9) {
counter--;
var imgId = imgId - counter;
} else {
counter++;
var imgId = imgId - counter;
}
jQuery('.activeImg').attr('src', "image/img_"+imgId+".jpg");
console.debug(counter)
console.debug(imgId)
}
我覺得有一個更好的方法來解決這個問題。
@DavidThomas完成:) – twinlakes