Javascript 使用带有等待时间的requestAnimationFrame
我有一些基本的脚本来左右滚动文本,我试图将其从Javascript 使用带有等待时间的requestAnimationFrame,javascript,jquery,animation,Javascript,Jquery,Animation,我有一些基本的脚本来左右滚动文本,我试图将其从timeout转换为requestAnimationFrame,但是,我无法使其工作 function slideHorizontal(e, amount, time) { var waitTime = 500; e.animate({ marginRight: '-'+amount+'px' }, time, 'linear', function() { setTimeout(functi
timeout
转换为requestAnimationFrame
,但是,我无法使其工作
function slideHorizontal(e, amount, time) {
var waitTime = 500;
e.animate({
marginRight: '-'+amount+'px'
}, time, 'linear', function() {
setTimeout(function() {
e.animate({
marginRight: 0
}, time , 'linear', function() {
setTimeout(function() {
slideHorizontal(e, amount, time);
}, waitTime);
});
}, waitTime);
});
}
有没有关于如何使用
requestFrameAnimation
应用等待时间的建议?顺便说一句,如果要使用requestFrameAnimation
,我是否应该使用jQuery.animate()
?以下是如何使用requestAnimationFrame
:
var i=0;
var forward=真;
函数绘图(){
请求动画帧(绘制);
如果(i<100&向前){
i+=2;
}
如果(i>0),则为else{
正向=假;
i-=2;
}
else{i=0;forward=true;}
document.getElementById(“div”).style.left=i+“px”;
}
draw()代码>
div{
宽度:80px;
高度:80px;
背景:黑色;
位置:绝对位置;
}
不,requestAnimationFrame()
在使用jQuery的animate()
时没有任何意义。jQuery可以在内部使用requestAnimationFrame()
当使用setTimeout(f,x)
运行主动画循环时,可以使用requestAnimationFrame()
替换setTimeout()
。与每隔x
ms有一个动画帧不同,requestAnimationFrame()
允许浏览器控制帧速率。实际速率将基于浏览器认为平滑动画所需的任何内容,具体取决于硬件和其他因素。当窗口/选项卡不可见时,浏览器还可以降低刷新率,以节省CPU时间并减少不可见动画的功耗
但这不是您使用的setTimeout()
的目的。您可以使用它在两个动画之间等待。有,但是requestAnimationFrame()
不是其中之一。这是使用超时的代码吗?或者您对此进行了一些修改?@RandomUser此代码使用超时
,可以在动画
方法的回调中找到。这是我正在使用的当前代码