我想我对setTimeout()有问题。
你可以访问我的网页,看看我在哪里:http://verbum.xtrweb/soon.php
问题是我有两个文本字段。
id="Verbum"的“verbum”
“忘记单个搜索”与id="forget"
我想在小字典掉下来后应用淡入效果(请参阅上面的我的网站链接,以便您理解)。我也更改了函数的名称和变量,但发生的唯一事情是只有一个文本淡入,这取决于其中一个文本在另一个文本之下的顺序。一个不褪色的甚至没有出现。希望你能理解并找到答案。谢谢。

<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>

下面是第二个<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>

最佳答案

问题是一次只能为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);

你需要复制粘贴两次,一次是“忘记”,一次是“详细”。
另外,我建议更改fadein函数的名称,或者将元素作为参数传递。否则,您的代码将只运行最后一个fadein函数,“forget”或“verbum”将正常工作,而另一个则不会。

10-08 01:09