Как я могу сделать это лучшим рекурсивным анимированным JQuery-скриптом? - PullRequest
4 голосов
/ 14 января 2011

Идея состоит в том, чтобы оживить облачный div и оживить его взад и вперед горизонтально и навсегда.Это работает, но, к сожалению, я думаю, что это склонно к утечкам памяти и задержке пользовательского интерфейса.Любой совет будет признателен, спасибо.

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 ]

4 голосов
/ 14 января 2011

Я не думаю, что ваш код вообще теряет память, но вы можете сделать вызов короче.

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 голос
/ 14 января 2011

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

Используйте необязательный аргумент обратного вызова.Когда анимация закончится, jquery вызовет вашу функцию.Прекрасное время, чтобы оживить другое направление.

...