div移动得非常慢

时间:2012-02-26 21:36:21

标签: javascript

我正在尝试移动div(头像)。

我点击页面获得最终位置,所以我运行移动功能,

var avi =  document.getElementById('avi_div');

move(start_left, start_top, end_left, end_top,avi)


function move(a,b,c,d,e) { 
    if ((a != c) || (b != d) ) {

        (c > a) ? a++ : a--;
        (d > b) ? b++ : b--;

        e.style.left = a  +'px';
        e.style.top = b  +'px';

        setTimeout(function(){ move(a,b,c,d,e)}, 1);
    }
}
好吧,它有效,但是虽然计时器设置为1,但它在Chrome中移动得很好,但在Firefox中移动速度非常慢,在IE中速度非常慢

2 个答案:

答案 0 :(得分:0)

使用jquery .animate()可能有意义。 另请注意...... +“px”不适用于每个浏览器。并尝试setInterval / clearInterval函数。

答案 1 :(得分:0)

不同浏览器使用的最小延迟存在差异 看到这篇文章:http://ajaxian.com/archives/settimeout-delay(它还建议了另一种将事件定时为0延迟的方法,你可以尝试)。

正如xcompl建议的那样 - 在这里使用setInterval似乎更好。

另请阅读http://ejohn.org/blog/how-javascript-timers-work/以了解Javascript中计时器的幕后故事 页面上是否还有其他内容妨碍您的计时器?一些Javascript引擎可能比其他人更好地处理它......