0

説明する問題があります。HTML5とCSS3でアニメーションを作成しています。私の考えでは、飛行機が飛び回っていて、しばらくするとミサイルを発射します。私がやりたいのは、その後ミサイルを出現させることです。しばらくして(選択したときはいつでも)javascriptを使用して、divのz-Indexプロパティを変更することを考えました(ミサイルイメージをdivコンテナーに入れているため)。そのために、下部にスリープ機能があります。zIndex値が変更されるため、機能することがわかっている「appear」関数を作成しましたが、必要な2秒待機しません。

また、visibilityプロパティを使用して解決策があると思いましたが、同じ問題があり、スリープ機能がまったく待機しません。

助言がありますか?ありがとう

    function sleep(milliseconds) {
      var start = new Date().getTime();
      for (var i = 0; i < 1e7; i++) {
        if ((new Date().getTime() - start) > milliseconds){
          break;
        }
      }
    }

    function appear(object){

    sleep(200000);
    var objective = document.getElementById(object);

    objective.style.zIndex=1;
4

2 に答える 2

0

setTimeoutxミリ秒でその関数を呼び出す関数に関数を渡すことができます。

function waitForMe() {
    alert('triggered!');
}

// Call waitForMe in 200000ms
setTimeout(waitForMe, 200000);

したがって、この例では、200000(200秒)ではなく2000(2秒)を使用する必要があります。

function appear(object) {
    setTimeout(function () {
        var objective = document.getElementById(object);
        objective.style.zIndex=1;
    }, 2000);
}

要素の非表示と表示

いくつかの方法でメソッドを非表示および表示できます。

  1. あなたが提案するように使用z-indexしてください。ページの後ろに送信する代わりに実際に非表示にできるため、おそらく最善の方法ではありません。

    objective.style.zIndex = 1;
    
  2. を使用するdisplayと、オブジェクトが完全に非表示になります。

    // hide
    objective.style.display = 'none';
    // show
    objective.style.display = 'block';
    
  3. を使用するvisibilityと、オブジェクトは非表示になりますが、ページ内のスペースを占有します。position:fixedまたはを使用している場合、これは問題ではありませんposition:absolute

    // hide
    objective.style.visibility = 'hidden';
    // show
    objective.style.visibility = 'visible';
    
于 2013-03-26T01:05:56.530 に答える
0

目的の周りにdivを作成し、次のようにjavascriptで追加することができます

  document.getElementById('objectivespan').innerHTML=imagehere;

それ以外は、

  objective.style.visibility='hidden';

そしてそれをobjective.style.visibility='visible'に変更します。

遅延については、

  function sleep(){
      alert('slept');
  }
  SetTimeout('sleep', 10000);
于 2013-03-26T01:07:07.583 に答える