设置 jQuery 动画的队列长度

Set a queue length for jQuery animations

本文关键字:队列 jQuery 动画 设置      更新时间:2023-09-26

有没有办法设置动画函数的队列长度?

想象一下,有人使用箭头键触发了一个jQuery动画函数。现在,他疯狂地冲刺箭头键,必须等待排队的功能完成,这可能需要很多时间,并且可能会令人困惑和伤脑筋。我知道你可以停止()动画,但我希望它只有一个队列长度,比如说三个。

这是一个小提琴。打开它并点击您的键。

示例代码:

var div = $(".bouncer");
function runIt() {
div
    .animate({ left: "+=200" }, 500 )
    .animate({ left: "-=200" }, 500 )
}
$(document).keydown(function(e) {
    if (e.keyCode) {
        runIt();
    }
});

据我所知,没有直接的方法可以做到这一点,但请尝试以下操作:

var div = $(".bouncer");
function runIt() {
div.animate({left: "+=200" }, 500)
   .animate({left: "-=200" }, 500)
}
$(document).keydown(function (e) {
if (e.keyCode) {
    var len=div.queue("fx").length;
    if(len<=1)
      runIt();
    }
});

jsfiddle.net/kcCG5/4/