如何使用jquery一个接一个地执行一系列动画?

时间:2011-09-09 15:56:34

标签: javascript jquery

这将在第一个动画完成后为第二个图像设置动画:

<script type="text/javascript">
        $(document).ready(function () {

            $('#image1').show("slide", { direction: 'left' }, 1000,
             function() { $('#image2').show("slide", { direction: 'left' }, 1000)});

    </script>

如果我在下面尝试了四张图片 - 只有前两张图片有效。

<script type="text/javascript">
        $(document).ready(function () {

            $('#image1').show("slide", { direction: 'left' }, 1000,
             function() { $('#image2').show("slide", { direction: 'left' }, 1000)},
             function () { $('#image3').show("slide", { direction: 'left' }, 1000)},
             function () { $('#image4').show("slide", { direction: 'left' }, 1000)});

    </script>

那么,按顺序动画所有图像(4)的有效方法是什么?

2 个答案:

答案 0 :(得分:2)

$('#image1').show("slide", { direction: 'left' }, 1000, function() {
    $('#image2').show("slide", { direction: 'left' }, 1000, function () {
        $('#image3').show("slide", { direction: 'left' }, 1000, function () { 
            $('#image4').show("slide", { direction: 'left' }, 1000);
        });
    });
});

您也可以这样做:

slide(1);
function slide(id){
    if(id<5){
        $('#image'+id).show("slide", { direction: 'left' }, 1000, function(){ slide(id+1));
    }
}

答案 1 :(得分:0)

我认为语法/格式就在这里。你有关闭括号,你不应该在第二和第三行。

<script type="text/javascript">
        $(document).ready(function () {

    $('#image1').show("slide", { direction: 'left' }, 1000, function() {
        $('#image2').show("slide", { direction: 'left' }, 1000, function () {
            $('#image3').show("slide", { direction: 'left' }, 1000, function () { 
                $('#image4').show("slide", { direction: 'left' }, 1000);
            });
        });
    });
    });

</script>