对于那些在我重新提出我的问题之前无法理解我的人。我有一个对应于5个div的ID的变量数组。我试图让每个div的颜色逐渐变化几秒钟,但在下一个div改变颜色(类似于交通信号灯或Simon游戏中的灯光)之前,颜色会改变。我目前使用for循环遍历每个数组项。我用setTimeout使用jQuery的.addClass()和removeClass()来试图达到这个效果。这里是我的代码:从数组中依次向元素添加和删除类
//CSS
.color{background-color: red;}
//JavaScript
var div1 = document.getElementById('divID');
etc...
var total = [div1, div2, div3, div4, div5];
for(var n=0; n<counter; n++){
$(total[n]).addClass("color");
setTimeout(function(){
$(total[n]).removeClass("color");
}, 3000);
}
UPDATE
我找到了解决办法。我为那些有同样问题的人发布它。我使用jQuery .delay()
和.queue()
来创建每个div一次接收.addClass()
和.removeClass()
的效果。感谢大家的帮助。
for(var n=0; n<counter; n++){
flash(n);
}
function flash(num){
var int = num + 1;
$(total[num]).delay(2000 * int).queue(function(){
$(this).addClass("light").delay(1000).queue(function(){
$(this).removeClass("light");
});
$(this).dequeue();
});
}
代码如下喜欢? –
欢迎来到堆栈溢出。 [阅读此处](http://stackoverflow.com/help/mcve)以获取有关如何创建最小,完整和可验证问题的更多信息。 – Toby