我正在学习 javascript 的乐趣,并且遇到了一个奇怪的问题。我正在尝试创建自己的淡入功能。但是,我的代码不起作用,它只是以完全不透明的方式显示“内容”div。
setContentOpacity 函数确实有效,我自己测试过它,它就像一个魅力。
理想情况下,我认为应该发生的是 1000 个“setTimeout”调用应该放在“堆栈”上,第一个设置不透明度低且没有超时,第二个设置不透明度稍高一点超时,一直到最后一个调用,它将不透明度设置为 1000,超时时间为 3000。
所以基本上,它应该立即将不透明度设置为 0,在 1 秒内设置为 ~333,在 2 秒内设置为 ~666,在 3 秒内设置为 1000。我认为我的逻辑在这里是合理的;随着时间的推移,设置不透明度的呼吁应该以一种会产生淡入效果的方式解决。
所以这里是相关的代码:
<script language='JavaScript' type='text/JavaScript'>
//takes a value from 0-1000
function setContentOpacity(value) {
document.getElementById('content').style.opacity = value/1000;
document.getElementById('content').style.filter = 'alpha(opacity=' + value/10 + ')';
}
function fadeInContent(){
setContentOpacity(0);
for (var i=0;i<=1000;i++)
{
setTimeout(function(){setContentOpacity(i);}, (i*3));
}
}
onload=fadeInContent;
</script>
(注意:我尝试简单地调用 setTimeout(setContentOpacity(i), (i*3));,但它似乎不起作用,使用匿名函数我得到了稍微好一点的结果)
知道这里有什么问题吗?提前致谢!