2016-06-12 41 views
-2

私は現在、javascriptで動作するプログラムを取得しようとしています。ボタンを1回押すだけで4つの画像を1つずつ表示し、その後4つの画像が私はサイクリングを止めてもらいたいと思っています。これは私が現在持っているコードです。画像を表示する際のJavascriptのif文

<html> 
<head> 
<script> 
var images = ["image1.png","image2.png","image3.png","image4.png"]; 
var imagenum = 0; 
var timer; 
function imageCycle() 
{ 
if(++imagenum == 4) 
imagenum = 0; 


document.image.src = images[imagenum]; 
timer = setTimeout("imageCycle()",1000); 
} 
</script> 
</head> 
<body> 
<img src="image1.png" name="image" width=800 height=600> 

<form> 
<input type="button" value="images" name="cycle images"  onclick="imageCycle()"> 

</form> 
</body> 
</html> 

ありがとうございました!

+1

'setTimeout(" imageCycle() "、1000);'は、あなたのケースではパフォーマンスに影響を及ぼすタイムアウトから 'eval'を呼び出します。代わりに、 'setTimeout(imageCycle、1000);'を使用します。 - それ以外は、あなたのコードは単純すぎます。あなたは 'imagenum'をインクリメントしていて、' 4'と同じ場合は '0'にリセットします。あなた自身の本当の問題が何であるか分かりません。 –

答えて

0

あなたのコードでは、機能をスケジュールし続けるため、画像が回転し続けます。

表示されている4枚目の画像で停止したい場合は、setTimeout行をelse文に入れる必要があります。

if (++imagenum == 4) { 
    imagenum = 0; 
} else { 
    document.image.src = images[imagenum]; 
    timer = setTimeout("imageCycle()",1000); 
} 

もう1つのポイントは、他のユーザーに通知して、私はここで私の答えを報告します。

あなたが文字列を使用します。setTimeoutメソッドの最初の引数として

imageCycle()

は、あなただけの関数名を使用する必要がありますinsted。

timer = setTimeout(imageCycle, 1000); 
+0

setTimeoutの最初の引数でStringを使用する理由は何ですか?実際にはなぜタイマー?クリック=クリックすると画像が切り替わります。そのタイムアウトは何のために完全に不明です。 –

+0

私は4つの画像すべてを循環させて、ボタンを押さずに停止して各画像を個別に変更するようにしたいのですが、 – Shep

+0

私は厳密に質問に答えます。その後、setTimeoutの最初の引数は、この場合は関数名であり、代わりにコードをコピーした文字列であることに同意します。私はタイマーが画像の変更を遅らせるのに使われていると思います。 –

関連する問題