違う信号を違う間隔で表示するこのコードを作った。それは動作しますが、コードを実行すると2番目の画像から開始します。第2の画像を最初に表示するコード
"red-yellow 2.jpg"
明らかに私の最初の画像から信号が欲しいと思っていますが、問題は何か分かりません。
コード:
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Code</h1>
<p>Traffic Light</p>
<img id="traffic" src="only red1.jpg">
<button type="button" onclick="ChangeLight()">Change Light</button>
<script>
var list = [{
src: "only red1.jpg",
interval: 10000
}, {
src: "red-yellow 2.jpg",
interval: 5000
}, {
src: "green3.jpg",
interval: 3000
}, {
src: "yellowonly4.jpg",
interval: 1000
}];
var nextlight = 0;
var timer;
function ChangeLight() {
nextlight = nextlight + 1;
if (nextlight == list.length)
nextlight = 0;
var firstlight = document.getElementById('traffic');
var obj = list[nextlight];
firstlight.src = obj.src;
//firstlight.alt = obj.src;
timer = setTimeout(ChangeLight, obj.interval);
}
ChangeLight();
</script>
</body>
</html>
初めて、 'VAR OBJ =リスト[nextlight]のようになりますnextlight' == 1 ... 2番目のライト(最初のものは少しでも目に見えるかもしれません) –
スクリプトタグの 'ChangeLight()'が下部にあります。 –
'var nextlight = list.length - 1; –