我写了一个简单的函数来动画div:
<script>
function okenko(y1, y2, dy)
{
vyska = document.getElementById("okenko");
y1=y1+dy;
if (y1<=y2) {
vyska.style.bottom = y1+'px';
alert(y1);
setTimeout(okenko(y1, y2, dy),30);
}
else {
vyska.style.bottom = y2+'px'
}
}
</script>
加上触发按钮和div:
<input type="button" onclick="okenko(-60,0,5);" value="Okénko">
<div id="okenko" style="position:fixed;bottom:0px;">
插入alert()时效果很好 - 但如果删除它,则会跳过动画。有什么问题?
谢谢!
答案 0 :(得分:3)
这一行:
setTimeout(okenko(y1, y2, dy),30);
立即 ... 调用 okenko(y1, y2, dy)
,并将其返回值(undefined
)传递给setTimeout
(最终什么都不做),完全按照foo(bar())
调用 bar
的方式,并将其返回值传递给foo
。
你可能意味着:
setTimeout(function() {
okenko(y1, y2, dy);
}, 30);