Javascript 以每秒50次的速度在IE 8中设置间隔缓动
现在我有一个弹跳物体的动画,它以每秒20次的速度播放Javascript 以每秒50次的速度在IE 8中设置间隔缓动,javascript,internet-explorer,Javascript,Internet Explorer,现在我有一个弹跳物体的动画,它以每秒20次的速度播放 1000/50 = 20 times a second 代码如下,您可以假设所有变量都已正确初始化 var animation = setInterval(function () { currentFrame++; if (speedX <= 0.0) { clearInterval(animation);
1000/50 = 20 times a second
代码如下,您可以假设所有变量都已正确初始化
var animation = setInterval(function () {
currentFrame++;
if (speedX <= 0.0) {
clearInterval(animation);
}
speedX -= 0.03;
speedY = (speedY + Math.sqrt((2 * currentFrame) / gravityPull));
yPosition += speedY;
if (yPosition > groundY) {
speedY *= -1;
yPosition = groundY;
}
xPosition += speedX;
$("#box").offset({ top: yPosition, left: xPosition });
}, 50);
var animation=setInterval(函数(){
currentFrame++;
如果(speedX groundY){
速度*=-1;
yPosition=groundY;
}
xPosition+=speedX;
$(“#框”).offset({top:yPosition,left:xPosition});
}, 50);
这在IE中创造了一个非常笨拙的性能,尽管Chrome似乎完全可以运行这段代码。事实上,它是如此糟糕,以至于它减慢了计算机的速度
这里有什么问题吗?看起来计算相当简单。。。帧速率不是很高,每秒20帧不是很高,但对于一个不太起伏不定的动画来说仍然足够流畅。新发现:Internet Explorer太差劲了 嗯,至少IE8及以上。IE9具有良好的性能
由
setTimeout
和setInterval
触发的定时函数的问题在于,浏览器试图在到期时执行函数,但这实际上仅在空闲时才会发生。自从Internet Eplorer新发现以来:Internet Explorer糟透了
嗯,至少IE8及以上。IE9具有良好的性能
由
setTimeout
和setInterval
触发的定时函数的问题在于,浏览器试图在到期时执行函数,但这实际上仅在空闲时才会发生。由于Internet Eplorer可能不足以获得20fps的速度,但是如果丢失了这两个函数调用--$()和.offset()--则可以通过保存对$(“#框”)的引用来节省一些开销
元素,并通过直接修改其中的.style.top
和.style.left
来操纵位置。这可能不足以获得20fps,但如果丢失这两个函数调用--$()和.offset()--则可以通过保存对$(“#框”)的引用来节省一些开销
元素,并通过直接修改其中的.style.top
和.style.left
来操纵位置。