3

に問題がsetTimeout()あると思います。

私のウェブページにアクセスして、私がどこにいるのかを確認できます: http://verbum.xtrweb/soon.php

問題は、2 つのテキスト フィールドがあることです。

  1. 「Verbum」とid="Verbum"
  2. 「単一の検索を忘れる」id="forget"

小さな辞書が落ちた後にフェードイン効果を適用したい(理解できるように、上記の私のサイトリンクを参照してください)。関数の名前と変数も変更しましたが、発生する唯一のことは、テキストの 1 つだけがフェードインすることであり、どちらが下にあるかの順序によって異なります。フェードインしないものは現れません。理解して見つけて答えていただければ幸いです。ありがとう。

<script type="text/javascript">
  var opac = 0.0;
  var alpha = 0;

  function init() {
    var elem = document.getElementById("Verbum");
    elem.style.display = 'inline';
    elem.style.filter = "alpha(opacity = " + alpha + ")";
    elem.style.opacity = opac;

    setTimeout("fadein()", 8500);
  }

  function fadein() {
    var elem = document.getElementById("Verbum");

    opac = opac + 0.1;
    alpha = parseInt(opac * 100);
    elem.style.opacity = opac;
    elem.style.filter = "alpha(opacity = " + alpha + ")";

    if (opac < 1.0) {
      //Change the 50 to adjust the speed. The higher the number, the slower the fade
      setTimeout("fadein()", 30);
    }

  }
  window.onload=init;
</script>

2 番目の<script>ブロックは次のとおりです。

<script type="text/javascript">
  var opac = 0.0;
  var alpha = 0;

  function init() {
    var eleme = document.getElementById("forget");
    eleme.style.display = 'inline';
    eleme.style.filter = "alpha(opacity = " + alpha + ")";
    eleme.style.opacity = opac;

    setTimeout("fadein()", 7500);
  }

  function fadein() {
    var eleme = document.getElementById("forget");

    opac = opac + 0.1;
    alpha = parseInt(opac * 100);
    eleme.style.opacity = opac;
    eleme.style.filter = "alpha(opacity = " + alpha + ")";

    if (opac < 1.0) {
      // Change the 50 to adjust the speed. The higher the number, the slower the fade
      setTimeout("fadein()", 30);
    }

  }

  window.onload = init;
</script>
4

1 に答える 1

3

問題は、一度に 1 つの機能しか割り当てることができないことですwindow.onload。最後のものは常に最初のものよりも優先されます。

を使用する代わりに、 を使用して、ページの読み込み時にコードを実行するようブラウザに指示window.onloadできます。window.addEventListenerこんな感じで使えます。

window.addEventListener('load', function(){
    var eleme = document.getElementById("forget");
    eleme.style.display = 'inline';
    eleme.style.filter = "alpha(opacity = " + alpha + ")";
    eleme.style.opacity = opac;

    setTimeout("fadein()", 7500);
}, false);

これを 2 回コピーして貼り付ける必要があります。

fadeinまた、関数の名前を変更するか、フェードする要素を引数として渡すことをお勧めします。それ以外の場合、コードは単に最後のフェードイン関数を実行し、「忘れる」または「Verbum」のいずれかが正しく機能し、もう一方は機能しません。

于 2012-11-12T23:48:45.797 に答える