【发布时间】:2010-10-26 13:52:44
【问题描述】:
我最近问了一个关于同一个函数的问题,它解决了我的问题并引导我学习教程,因为我使用了一个 while 循环,这意味着我的函数没有动画,只是冻结然后调整大小。这种使用 setTimeout 的新方法应该可以工作。唯一的问题是它只是捕捉到新的大小而不是对其进行动画处理。根据萤火虫没有错误。这是我当前管理动画的代码部分。
// Resize in timeframe
// Work out distance
var widthdiff = width - parseInt(element.style.width);
var heightdiff = height - parseInt(element.style.height);
// Work out how miliseconds per step (100 in total)
var steptime = timeframe / 100;
// Work out how many pixels it needs to move each step
var widthpps = widthdiff / 100; // ERROR?
var heightpps = heightdiff / 100;
// Set up original sizes
var origwidth = parseInt(element.style.width);
var origheight = parseInt(element.style.height);
// Loop through all 100 steps setting a time out resize each time
var timers = [];
for(var i = 0; i < 100; i++)
{
timers[i] = setTimeout(function() { // ERROR?
element.style.width = origwidth + (widthpps * i) + 'px';
element.style.height = origheight + (heightpps * i) + 'px';
}, i * steptime);
}
参数传递得很好,我已经测试了所有这些,我让它动画一次,只是错了。所以我的问题将靠近名为 ERROR 的 cmets?我相信。感谢您的帮助。
【问题讨论】:
标签: javascript animation settimeout