2016-10-05 4 views
0

テーブル内の画像を変更するコードがあります。私はそれを遅くするためにタイマーを入れてみて、場所にすべてのちょうど 'スナップ'の代わりに一種のロールアウトのように見えるようになるまでうまく動作します。どんな助けでも大歓迎です。以下のコード:テーブルの画像をアニメーション化するためのsetTimeout

function showImage(){ 
    for(i=0; i<SIZE; i++) { 
     var showImage = document.getElementById(i); 
     showImage.src = i+'.png'; 
    } 
    setTimeout(showImage(),700); 
} 
+0

現在のコードにはどのような問題がありますか? – DTH

+1

とにかくあなたのshowImage関数は、あなたがそれを何度も何度も呼び出しているので、すぐに終了しません。 – DTH

+0

@DTHのように、関数の定義(名前)をsetTimeoutに渡して実行する必要がありますそれ。 'setTimeout(showImage、700);' – AxelH

答えて

0

編集:すぐに呼び出された関数式の内のコードを入れてください:

function showImage(){ 
    for(i=0; i<SIZE; i++){ 
     (function(i){ 
      setTimeout(function(){ 
       var img= document.getElementById('image' + i); 
       img.src = i + '.png'; 
      }, i * 100); 
     })(i); 
    } 
} 
+1

と書いてください。しかし、割り当て仕様では、setTimeoutを使ってイメージを展開するよう求められています。私はそれがカウントダウンタイマーのための別の関数でうまく動作しているが、これに満足していない(理由は間違いない)。 – shep

+0

答えを変更しました。希望が役立ちます。 –

0

を使用すると、内部で自身への関数呼び出しを置いてきたようにあなたの関数は、何度も何度も呼び出されます関数。それが動作しない場合は、ループの中とあなたのshowImage(I)関数の中で、このようなブラウザコンソールに出力を挿入することで、機器にあなたのコードを試してみてください。この(未テスト)

function showImages() 
{ 
    for(i=0; i<SIZE; i++) { 
     setTimeout(function() { 
     showImage(i); 
     }, 700)  
    }   
} 

function showImage(i) 
{ 
    var showImage = document.getElementById(i); 
    showImage.src = i+'.png';  
} 

をお試しください:

console.log("insert what you want to output here"); 

クロム(および他のブラウザ)ではF12を押してデバッガを起動し、コンソールタブが選択されていることを確認します。これで、ロギングを使用してスクリプトをデバッグできるはずです。

+0

ありがとう、しかし、私はまだこれらのいずれかを動作させることができません。私は、ボタンonClickから関数を呼び出しています。 – shep

+0

@shep showImage変数を出力して、結果が正常であることを確認してください。 – DTH

+0

@shep:私の更新されたコードで試してください...私は愚かな間違いを犯しました:) – DTH

関連する問題