我怎样才能使这个更好的递归动画jQuery脚本?

时间:2011-01-13 22:06:48

标签: javascript jquery jquery-ui jquery-animate

这个想法是为一个云div设置动画,让它永久地水平来回动画。这很有效,但不幸的是我认为它容易出现内存泄漏和UI滞后。任何建议都会很感激,谢谢。

function animateCloud() {
    $('#cloud').animate({ right: '+=500' }, { duration: 35000, easing: "linear", queue: true });
    animateOpposite();
}

function animateOpposite() {
    $('#cloud').animate({ right: '-=500' }, { duration: 35000, easing: "linear", queue: true });
    animateCloud();
}

$(document).ready(function() {
    animateCloud();
});

2 个答案:

答案 0 :(得分:4)

我认为您的代码根本不会泄漏内存,但您可以缩短调用时间。

function animateCloud() {
    $('#cloud').animate({ right: '+=500' }, { duration: 35000, easing: "linear" })
               .animate({ right: '-=500' }, { duration: 35000, easing: "linear", complete: animateCloud });
}

示例:http://www.jsfiddle.net/bh3f4/

答案 1 :(得分:1)

http://api.jquery.com/animate/

使用可选的回调参数。动画结束后,jquery会调用你的函数。完美的时间来激活其他方向。