我想我对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”将正常工作,而另一个则不会。