我在鬼混jQuery的stop()
并以无限循环结束。
这个想法是(出于实验目的)创建一个具有“步进”条件的动画,该条件将检查元素的css属性是否达到某个值,并且在这种情况下,将动画停止在其轨迹中,清除队列并完成立即播放动画。
我知道这听起来很愚蠢,因为可能不是.stop()
的使用方式,但是我想您可能会为我提供这种意外行为的答案。
这是代码:
$("#element").animate({
"width": "500px",
"height": "130px"
}, {
"duration": 850,
"step": function () {
var currentWidth = $(this).width();
if(currentWidth >= 295) $(this).stop(true, true);
}
}).slideUp(700);
我发现无限循环是由传递给
true
的第二个stop()
引起的-即,该参数指示动画立即完成。它可能与“步进”功能有关,但是有人可以向我解释这种行为吗?
最佳答案
致电:
$(this).stop(true, true);
将在最后一步执行
step
函数。在该呼叫中,您正在再次呼叫停止。直到step
功能完成后,才会从队列中删除动画。由于动画仍在队列中,因此再次调用stop
将连续执行最后一个step
...。关于jquery - jQuery .stop()的无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9875267/