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