javascript - 如何逐步为 6 个盒子制作动画?

标签 javascript jquery

这是我的 html...

        <div class="project">
            <div class="box">

            </div>
        </div>
        <div class="project">
            <div class="box">

            </div>
        </div>
        <div class="project">
            <div class="box">

            </div>
        </div>
        <div class="project">
            <div class="box">

            </div>
        </div>
        <div class="project">
            <div class="box">

            </div>
        </div>
        <div class="project">
            <div class="box">

            </div>
        </div>

这是我的javascript...

$('.box').each(function(){
            $(this).animate({
                width: 300,
                height: 200,
                top: 0,
                left: 0
            }, 500);
        });

我希望每个盒子一个接一个地动画。我可以专门这样做,但是代码真的很长,包含所有回调。想知道如何正确地遍历它们?

最佳答案

您可以研究递归函数。

function animateBox(i) {
    $('.box').eq(i).animate({ // animate this one
                    width: 300,
                    height: 200,
                    top: 0,
                    left: 0
                }, 500,
    function() { // when this one is complete
        if($('.box').eq(i + 1).length > 0) { // if next one availabe
            animateBox(i + 1); // call recursively for next one
        }
   });
}

animateBox(0); // start process

http://jsfiddle.net/pimvdb/753yU/

关于javascript - 如何逐步为 6 个盒子制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7213765/

相关文章:

javascript - 关闭浏览器前显示的自定义弹出窗口

jquery获取文本框数组的值

javascript - 动态创建 html div jinja2 和 ajax

javascript - 如果在后台使用 jquery 检查 session 失败,如何重定向 index.php 页面?

javascript - JQuery on-change 事件未调用

javascript - typescript window.setInterval() 无法正常工作

javascript - 使用 Yup 验证以检查字符串或数字长度

javascript - jQuery Mobile fieldset options 可以看到控件

javascript - Knockout.Mapping 和 EcmaScript 5 已设置

javascript - 模拟 ("click")在弹出的react-create-app项目测试中不会导致重新渲染