我正在尝试移动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中速度非常慢
答案 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引擎可能比其他人更好地处理它......