为什么这个jQuery动画循环不起作用

why this jQuery animation loop doesn't work?

本文关键字:循环 不起作用 动画 jQuery 为什么      更新时间:2023-09-26
<script>
function swim() {
    $("#ship").animate({left: "-=-540px"}, 3000, function() {
        $("#ship").css("-moz-transform", "scaleX(-1)");
        $("#ship").css("-o-transform", "scaleX(-1)");
        $("#ship").css("-webkit-transform", "scaleX(-1)");
        $("#ship").css("transform", "scaleX(-1)");
        $("#ship").css("filter", "FlipH");
        $("#ship").css("-ms-filter", "FlipH");
        $("#ship").animate({left: "-=540px"}, 3000);
        swim();
        })
    }

    swim();
</script>

当我只使用时document.ready工作正常,但在尝试将其转换为循环后停止。某处一定有语法错误,但我无法弄清楚在哪里。

编辑:nvm。就是把剧本放到<head>而不是<body>

它需要文档就绪包装器是有原因的。"正常"函数不能平等地替代它。如果在 DOM 准备就绪之前调用函数,则#ship选择器与任何内容都不匹配,动画不会运行,并且不会执行回调。

在文档就绪事件中调用函数:

$( swim );