在重复的jQuery动画中放置delay()的问题

时间:2013-05-17 12:05:23

标签: jquery

我已经创建了一个jQuery函数,可以重复地将元素从前50px动画到前150px,一个接一个地重复。

我试图在每个单独元素的动画之间创建一个暂停(不是迭代之间的暂停)。在第一次迭代中,没有任何反应。在下面的函数中,函数考虑delay(),但仅考虑元素的一部分。

您可以在下面的链接中查看整个过程。

THE ENTIRE CODE

    $(".but").click(function() {
        function repeat() {
            var count = $(".box").length;
            $($(".box").get().reverse()).each(function(i) {
                $(this).delay(600 * i).animate({
                    top: "150px",
                    duration: 600,
                    easing: "linear",
                    complete: function() {
                        $(".box").each(function(i) {
                            $(this).delay(500);
                        });
                        if (count == 0) {
                            $(".box").css("top", "50px");
                            repeat();
                        };
                    }
                });
            });
        };
        repeat();
    });

1 个答案:

答案 0 :(得分:1)

您在complete:

下有此信息
$(".box").each(function(i){
    $(this).delay(500);
});

我把它移到了$(this).delay(600 * i).animate [...]

之前

现在这些街区之间存在延迟。

这是你想要的吗? http://jsfiddle.net/HdpPj/12/