Javascript 动画完成后如何重新运行动画(jQuery)?

Javascript 动画完成后如何重新运行动画(jQuery)?,javascript,jquery,animation,jquery-animate,Javascript,Jquery,Animation,Jquery Animate,我试图做的是在页面上连续地设置一个图像的动画,同时可以拖动。当前,它可以移动、拖动,并在初始动画完成后返回初始位置 然而,我不知道如何让它再次运行,使它成为一个连续的动画循环。我想将函数animateCloud()放在animateCloud()中,但不确定将其附加到何处。下面是JSFIDLE演示: 如果有更好的方法,我也会很感激。我刚刚开始学习jQuery,我只知道一些语法。我不知道你为什么要使用.stop(),但我想这应该行得通- function animateCloud() {

我试图做的是在页面上连续地设置一个图像的动画,同时可以拖动。当前,它可以移动、拖动,并在初始动画完成后返回初始位置

然而,我不知道如何让它再次运行,使它成为一个连续的动画循环。我想将函数animateCloud()放在animateCloud()中,但不确定将其附加到何处。下面是JSFIDLE演示:


如果有更好的方法,我也会很感激。我刚刚开始学习jQuery,我只知道一些语法。

我不知道你为什么要使用
.stop()
,但我想这应该行得通-

function animateCloud() {
    $(cloud).animate({
        left: '300px'
    }, 25000, function() {
        $(this).css({ left: '0' });
         animateCloud();
    });

}

我希望这就是你想要的

我不知道你为什么要使用
.stop()
,但我想这应该行得通-

function animateCloud() {
    $(cloud).animate({
        left: '300px'
    }, 25000, function() {
        $(this).css({ left: '0' });
         animateCloud();
    });

}

我希望这就是你想要的

工作起来很有魅力。应该可以避免递归(只是为了避免填满堆栈),但我想内存占用是最小的,是的。谢谢不知道我最初为什么要停止()。我想我是在到处玩,我想我需要它。现在,我记得,我希望动画在鼠标上停止,然后继续在鼠标上移动。你又犯了一个错误。您将回调函数放入
.css()
中,并在其中放入
animateCloud()
,根据jQuery规范,这是无效的。回调函数是在特定操作完成时调用的函数,因此在
.animate
等中存在回调。在
.css()
中,分配或检索操作与完成操作完全不同。在技术术语中,
.css()
是同步的,而像
.animate()
这样的函数是异步的。因为
.css
在您的情况下没有回调,
animateCloud
再也没有被调用过。@dewbot:好的,我会注意的。。)工作起来很有魅力。应该可以避免递归(只是为了避免填满堆栈),但我想内存占用是最小的,是的。谢谢不知道我最初为什么要停止()。我想我是在到处玩,我想我需要它。现在,我记得,我希望动画在鼠标上停止,然后继续在鼠标上移动。你又犯了一个错误。您将回调函数放入
.css()
中,并在其中放入
animateCloud()
,根据jQuery规范,这是无效的。回调函数是在特定操作完成时调用的函数,因此在
.animate
等中存在回调。在
.css()
中,分配或检索操作与完成操作完全不同。在技术术语中,
.css()
是同步的,而像
.animate()
这样的函数是异步的。因为
.css
在您的情况下没有回调,
animateCloud
再也没有被调用过。@dewbot:好的,我会注意的。。)功能非常相似。。功能非常相似。。