Javascript 循环的JS图像滑块在第二次迭代时不迭代
伙计们,这几天我一直在努力解决这个问题。我真的需要你的帮助,我想知道发生了什么。我的函数将迭代一次,然后返回到第一个值,如何使循环从零开始并继续循环。我尝试了多次循环,但都没有成功。谢谢你们Javascript 循环的JS图像滑块在第二次迭代时不迭代,javascript,arrays,for-loop,Javascript,Arrays,For Loop,伙计们,这几天我一直在努力解决这个问题。我真的需要你的帮助,我想知道发生了什么。我的函数将迭代一次,然后返回到第一个值,如何使循环从零开始并继续循环。我尝试了多次循环,但都没有成功。谢谢你们 function run() { for (let i = 0; i <= imgArray.length; i++) { (function (e) { setTimeout(function () { if (i ==
function run() {
for (let i = 0; i <= imgArray.length; i++) {
(function (e) {
setTimeout(function () {
if (i == imgArray.length) {
i = 0;
}
imgContainer.style.background = imgArray[i];
}, 3000 * e);
})(i);
};
}
函数运行(){
对于(设i=0;i您可能需要的是setInterval
。与只执行一次的setTimeout
不同,setInterval
在每个时间间隔(例如每1秒)执行,直到您调用clearInterval()
使用此逻辑和一些模(%
)逻辑,我们可以:
var currentImage = 0;
//this will call `changeBackground` every 1 second
setInterval(changeBackground, 1000); //1000 ms = 1 sec
function changeBackground() {
currentImage = (currentImage + 1) % imgArray.length;
imgContainer.style.background = imgArray[currentImage];
}
模数部分的说明:
%
或模为我们提供了imgArray.length
除以currentImage+1
的剩余欧几里德除法,该除法的值始终在0和imgArray.length-1
之间。每当currentImage+1
等于imgArray.length
时,currentImage
将重置为0零。你能发布一些html来配合这个吗