我有一个函数可以短暂更改元素的颜色,然后将其更改回原始颜色。根据您所处的级别(这是一个益智游戏),forEach 循环会运行此函数一定次数(级别越高,次数越多)。目前,元素更改的颜色是我手动输入到代码中的颜色。我试图找到一种方法来在每次 forEach 运行该函数时更改该颜色。
例如,假设您在第一轮,forEach 运行了三次,该元素将闪烁红白、红白、红白。我需要的是它闪烁红白、蓝白、粉白。当颜色用完时,它还需要循环回到数组的开头。例如,在较高级别,forEach 可能会运行 6 次,因此颜色数组上的迭代必须返回到开头一次。这是代码:
function showCircle(item, j, x) {
setTimeout(function () {
let x = 0;
let colors = ['blue','pink','green']
let color = colors[x];
var num = initArray[j];
var element = document.getElementById(num)
element.classList.add(`cell-glow-${color}`)
window.setTimeout(function () {
element.classList.remove(`cell-glow-${color}`)
}, 400);
j++;
x++
console.log(color)
}, speed() * j);
};
function showEachCircle(captureUserClicks) {
initArray.forEach(showCircle);
}
显然,上面发生的情况是 showCircle 函数每次都会将 x 归零,因此它会卡在第一次迭代中。但我不确定应该将这些变量放在哪里以使其正确迭代。另外,我什至还没有开始思考如何强制数组回到开头。
有任何想法吗?谢谢你!
慕桂英3389331
达令说
相关分类