使用for循环在数组中的每个元素之间设置延迟

时间:2017-02-20 05:33:34

标签: javascript arrays

我试图改变数组中每个元素的不透明度,但每个元素之间有一点延迟。我已经尝试了下面简化代码段的一系列变体,但每次都要么一次性更改,或者没有任何变化。什么是这段代码的正确语法?

for (let i = 0; i < testArray.length; i++) {
  setTimeout(function() {testArray[i].style.opacity = ".5"}, 500);
}

3 个答案:

答案 0 :(得分:2)

由于您使用let异步性不是问题,而只是时间问题。您只需要更改

 setTimeout(function() {testArray[i].style.opacity = ".5"}, 500);

 setTimeout(function() {testArray[i].style.opacity = ".5"}, 500*(i+1));

这将为500 ms的增加量设置项目的计时器,如500,1000,1500等等

答案 1 :(得分:0)

尝试使用(isAfter(x) or isEquals(x)) == !isBefore(x) (isBefore(x) or isEquals(x)) == !isAfter(x) ,以防它与setInterval不兼容,如下所示:

setTimeout

答案 2 :(得分:0)

你可以使用$('').slideUp(2000);方法在我使用过的两个元素之间延迟几次。它工作正常