立即在jQuery中完成动画队列

时间:2010-08-10 15:33:08

标签: javascript jquery jquery-animate

我需要停止动画并立即完成所有待处理的动画 stop不起作用:
假设我有动画移动0px 100px上的元素,50px只移动50px时使用停止。结果将是50px处的元素。我想要的结果是当我中断动画时,即使元素位于100px,它也会立即跳转到{{1}}。 我该怎么做?

3 个答案:

答案 0 :(得分:1)

$.fn.stop()可以选择清除队列并跳到最后。

只需执行以下操作:$('#foo').stop(true, true);

答案 1 :(得分:0)

http://forum.jquery.com/topic/stop-true-true-animation-chains-and-callbacks

找到了这个
(function($){
    $.fn.extend({
        hardStop: function(){
            return this.each(function(){
                var e = $(this);
                while (e.queue().length){
                    e.stop(false, true);
                }
            });
        }
    });
})(jQuery);

通过

使用它
$("#element").hardStop();

如果不起作用,可以将原始代码更改为:

$("#abc").stop().animate(...

答案 2 :(得分:0)

手动指定最后一个状态,不要懒惰。我相信你能做到:)

$('#foo').stop(true, true);
$('#foo').css({x, '100px'});