【发布时间】:2017-04-12 22:18:31
【问题描述】:
我有一个简单的彩虹时钟,想法是通过条纹的背景颜色的每一秒都会更改为数组中的下一个颜色。我正在尝试获取秒的值来偏移数组,然后环绕到开头。
例如:
var seconds = 0;
var colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet', 'pink'];
当我迭代时会变成:
var seconds = 1;
var colors = ['pink', 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
我目前正在使用这个:
$('.color').each(function setColors(i) {
$(this).css('background', colors[i]);
});
但我正在尝试做这样的事情:
var seconds = time.getSeconds();
$('.color').each(function setColors(i) {
$(this).css('background', colors[i + seconds]);
});
这是我的fiddle
提前感谢您提供的任何帮助:)
- K
【问题讨论】:
-
我看到你有 setTimeout 来改变秒数,但我没有看到你试图改变任何地方的颜色。
-
我为 setColors 函数设置了 SetTimeout,但它破坏了它
-
提示:(anyPositiveNumber % array.length) == [0, 数组长度 - 1] 的范围
-
你不应该使用 setInterval,而是使用 set timeout 阅读它
标签: javascript jquery arrays loops foreach