如何使用JavaScript在计时器上更改交通灯中的灯?
我已经制作了一组按顺序点亮的交通灯,但我想在打开网页时加载一个计时器,每2秒钟按顺序改变一次灯,而不是单击按钮 我试图这样做,但它不工作,如果你们知道为什么,可以帮助,请做。谢谢如何使用JavaScript在计时器上更改交通灯中的灯?,javascript,html,css,image,timer,Javascript,Html,Css,Image,Timer,我已经制作了一组按顺序点亮的交通灯,但我想在打开网页时加载一个计时器,每2秒钟按顺序改变一次灯,而不是单击按钮 我试图这样做,但它不工作,如果你们知道为什么,可以帮助,请做。谢谢 <html> <body onload="timer()"> <div class="container"> <button class="btn" onclick="traffic_lights()">Change Lights</bu
<html>
<body onload="timer()">
<div class="container">
<button class="btn" onclick="traffic_lights()">Change Lights</button>
<img id="traffic-light" src="" alt="traffic lights">
</div>
</body>
<script>
var traffic_light_img = [];
var i = 0;
function traffic_lights() {
if (i <= 3) {
i++;
document.getElementById("traffic-light").src = traffic_light_img[i];
} else {
i = 0;
document.getElementById("traffic-light").src = traffic_light_img[i];
}
}
function timer() {
setInterval(traffic_lights, 2000);
}
</script>
换灯
var交通灯img=[];
var i=0;
交通灯的功能(){
如果(i您的代码已经根据计时器自动影响交通灯。唯一的问题是您没有包含任何要加载的图像,并且在加载图像之前增加了索引。请记住,列表从索引0开始
而不是:
if (i <= 3) {
i++;
document.getElementById("traffic-light").src = traffic_light_img[i];
}
if(哦,对不起,我在我的实际代码中加载了图像,但网站不允许代码中的链接,所以我不得不删除它们。如果使用i=(++i)%3;@Pete--True,很好地抓住了:)尽管这是一个标准的JavaScript分配问题,如果他使用模,可能会引起怀疑;)不过,谢谢:)没问题:)如果这个答案为您解决了问题,请不要忘记单击投票按钮下方的灰色复选框,将解决方案标记为正确——这会将其从“未回答的问题”队列中删除,并使提问者和答问者都享有声誉。当然,这样说,您是一个We’我们没有义务将我的答案(或任何其他答案)标记为正确,尽管这确实有助于保持事情顺利进行:)
if (i < 3) {
document.getElementById("traffic-light").src = traffic_light_img[i];
i++;
}