2017-02-26 4 views
0

私は前に尋ねられた同様の質問を知っていますが、答えは私と私の単純なアニメーションのために進んでいるので私を助けませんでした。私はJavaScriptの冒頭にいます。私のウェブサイトでは、あるポジションから別のポジションに要素を移動するための簡単なコードがあります。私はそれが最終的な位置に到達したとき消えてしまい、消えずに突然消えてしまいたいです。不透明度の変更でそれを行う必要がありますか?どのように書きますか?私のコードは以下の通りです。javascriptアニメーションの最後に要素を隠す方法

function myMove() { 
    var elem = document.getElementById("animation"); 
    var pos = 100 ; 
    var id = setInterval(frame, 5); 

    function frame() { 
     if (pos == 380) { 
      clearInterval(id); 


     } else { 
      pos++; 
      elem.style.top = pos + 'px'; 
      elem.style.left = pos + 'px'; 

     } 
    } 

} 
+0

あなたは 'てclearInterval(ID)です(' elem.style.display =「none''使用して)それを隠す; ' –

+0

グレートは、あなたに感謝を! –

答えて

0

要素を非表示にするには、単純にstyle.displayを 'none'に設定します。例えば

:ちょうどヘッドアップとして

function myMove() { 
    var elem = document.getElementById("animation"); 
    var pos = 100 ; 
    var id = setInterval(frame, 5); 

    function frame() { 
     if (pos == 380) { 
      clearInterval(id); 
      // this is the key line 
      elem.style.display = 'none'; 

     } else { 
      pos++; 
      elem.style.top = pos + 'px'; 
      elem.style.left = pos + 'px'; 

     } 
    } 

、連鎖setTimeoutsを使用すると、HTMLアニメーションでのsetIntervalを使用するよりも改善することができます。その理由は、アニメーション(および/またはページ上の他のスクリプト)が間隔よりも長くかかる場合、ブラウザは応答しなくなるからである。 setTimeoutsのチェーンでは、時計は現在のフレームの終わりまでティッキングを開始しません。

例えば

、あなたができる:

function myMove() { 
    var elem = document.getElementById("animation"); 
    var pos = 100 ; 

    function frame() { 
     if (pos == 380) { 
      // this is the key line 
      elem.style.display = 'none'; 

     } else { 
      pos++; 
      elem.style.top = pos + 'px'; 
      elem.style.left = pos + 'px'; 
      // set a timeout for 5 ms 
      setTimeout(myMove, 5); 
     } 
    } 
+0

ありがとうございます、display = 'none'は私にとってそれをしました。 –

+0

アニメーション自体はうまくいきました。私がまだ理解できなかったもう一つのことがあります。私は何をしているのか説明しようとします:アニメーション要素は、基本的に犬の口に投げ込まれる犬のクッキーの画像です。アニメーションの最後の位置にあります。ブラウザウィンドウのサイズを変更するとすぐに、クッキーは飛んで犬の口に入ることはありません。どのようにアニメーションに犬のイメージを含めると、口は常にアニメーションのクッキーの最後の位置にくるでしょうか?前もって感謝します。 –

+0

divを含む要素とcookieを含む要素の両方をdivに配置し、それらの要素に絶対的な位置を与えることで、ウィンドウのサイズに起因する不一致が解消されます。または、犬の位置を動的に計算し、それを使ってクッキーの目的地を決定することができます。 – JeremiahB

関連する問題