【发布时间】:2011-04-30 11:27:28
【问题描述】:
我正在编写一个 JavaScript 库,但遇到了一个问题,我有一个调整元素大小的函数,一切正常,但我也有一个动画版本,可以在指定的时间范围内调整它们的大小。该脚本在运行时似乎会冻结,并且似乎取决于我的 while 循环,这是我的代码。
// Resize in timeframe
// Work out distance
var widthDiff = width - element.offsetWidth;
var heightDiff = height - element.offsetHeight;
// Work out pixels per milisecond
var widthppm = widthDiff / timeframe;
var heightppm = heightDiff / timeframe;
// Set up times
var d = new Date();
var endtime = d.getTime() + timeframe;
// Get the original width and height
var oldwidth = element.offsetWidth;
var oldheight = element.offsetHeight;
var iteration;
// Loop through until done
while(d.getTime() >= endtime)
{
iteration = timeframe - (endtime - d.getTime());
element.style.width = oldwidth + (iteration * widthppm) + 'px';
element.style.height = oldheight + (iteration * heightppm) + 'px';
}
我现在只能告诉你的是参数(元素、宽度、高度、时间范围)工作正常,这取决于我的算法。任何帮助都会很棒,谢谢!
【问题讨论】:
标签: javascript html loops while-loop