Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用带有等待时间的requestAnimationFrame_Javascript_Jquery_Animation - Fatal编程技术网

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此代码使用
超时
,可以在
动画
方法的回调中找到。这是我正在使用的当前代码