Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 如何停止jquery动画?_Javascript_Jquery_Animation_Jquery Animate - Fatal编程技术网

Javascript 如何停止jquery动画?

Javascript 如何停止jquery动画?,javascript,jquery,animation,jquery-animate,Javascript,Jquery,Animation,Jquery Animate,我有一个可以用箭头键移动的div/box。 然后我希望div/box在到达某个特定点时“掉到一个洞里”,然后返回开始。使div/box坠落不成问题,但当我重置它时,我一直在坠落 我使用anmimate()进行秋季重置,使用css()进行如下重置: if(parseInt(canvas.css('left'), 10) <= -220) { box.delay(250).animate({bottom: '0'}, 500) } if(parseIn

我有一个可以用箭头键移动的div/box。 然后我希望div/box在到达某个特定点时“掉到一个洞里”,然后返回开始。使div/box坠落不成问题,但当我重置它时,我一直在坠落

我使用
anmimate()
进行秋季重置,使用
css()
进行如下重置:

    if(parseInt(canvas.css('left'), 10) <= -220) {
        box.delay(250).animate({bottom: '0'}, 500)
    }

    if(parseInt(box.css('bottom'), 10) == 0) {
        canvas.animate({left: '0'}, 2000)
    }

    if((parseInt(box.css('bottom'), 10) == 0) && (parseInt(canvas.css('left'), 10) == 0)) {
        box.css('bottom', '100px');
    }

如果(parseInt(canvas.css('left'),10)据我所知
JQuery
有一个.stop()方法来停止动画,你可以看看这个方法
JQuery
文档中。

问题在于超时。队列中添加了许多动画事件。因此它正在执行所有事件。如果增加超时,可以看到差异

顺便说一句,要停止所有事件并清除队列,可以使用
box.clearQueue().stop();


查看

你好,我的电脑爱好者朋友,我看到了你的小提琴,答案很有趣:

原文:

if(parseInt(canvas.css('left'), 10) <= -220) {
    box.delay(250).animate({bottom: '0'}, 500)
}
if(parseInt(canvas.css('left'),10)在这里->查看.animate()函数,我在函数结束后使用回调将ready设置为true。
if(parseInt(canvas.css('left'), 10) <= -220 && ready) {
    ready = false;
    box.delay(250).animate({bottom: '0'}, 500, function(){
        ready = true;
    });
}