[英]How do I solve this issue of the pictures not changing?
嘿,所以我开发了这段代码,让我可以根据计时器更改图像。 随着倒计时达到某些里程碑,图片会发生变化。 但不幸的是,我无法让它按预期工作。
<!DOCTYPE html>
<html>
<body>
<h1> Change the lights automatically</h1>
<img id="myimg" src="1.png" width ="100" height="300">
<script>
var list = [
"1.jpg",
"2.jpg",
"3.jpg",
"4.jpg"
];
var count = 0;
var time=20;
var timing=setInterval(timer, 1000); //1000 will run it every 1 second
function timer()
(
var newImage = document.getElementById('myimg');
time = time-1
if (time <= 1) time = 20;
if (time >15 && time < 21) count = 0;
if (time >10 && time <16) count = 1;
if (time >6 && time <15) count = 2;
if (time >1 && time <5) count = 3;
if (time = 0) count = 0;
var newImage = document.getElementById('myimg');
newImage.src = list[count];
}
</script>
</body>
</html>
我所做的是,代码应该有一个每秒钟运行一次的计时器,当计时器在一定数量之间时,计数值应该相应地改变。 之后,由于我已将新图像设置为每次计数值更改时更改,因此显示的图像应该更改,但情况并非如此,因为它不会更改。 那里的任何专家都可以确定它有什么问题,以便我可以修复它? 提前致谢!
最后的 if 条件将时间指定为 0。
if (time = 0) count = 0;
时间永远是 0 所以
newImage.src = list[count];
始终显示相同的图像。 删除最后一个 if 条件并修改第一个。
if ((time >15 && time < 21) || (time == 0)) count = 0;
你错过了这里的花括号......
函数定时器()(
... 它应该是
函数定时器(){
这是因为您的时间在计时器函数上始终为 19 或 time-1,您可能会考虑查看此javascript setInterval() 和 Variable Scope
希望这可以帮助
检查以下代码片段
var list = [ "1.jpg", "2.jpg", "3.jpg", "4.jpg" ]; var count = 0; var time=20; var timing=setInterval(timer, 1000); function timer() { var newImage = document.getElementById('myimg'); time=time-1; if (time <= 1) time = 20; else if (time >15 && time < 21) count = 0; else if (time >10 && time <16) count = 1; else if (time >6 && time <15) count = 2; else if (time >1 && time <7){ count = 3;} else if (time == 0) count = 0; else { clearInterval(timing); return; } var newImage = document.getElementById('myimg'); console.log(newImage.src); newImage.src = list[count]; }
<img id="myimg" src="1.png" width ="100" height="300">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.