浏览器跳过div的动画

时间:2013-08-07 09:04:25

标签: javascript function animation

经验丰富的程序员,

我写了一个简单的函数来动画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()时效果很好 - 但如果删除它,则会跳过动画。有什么问题?

谢谢!

1 个答案:

答案 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);