Почему эта анимация jQuery не зацикливается бесконечно? - PullRequest
0 голосов
/ 20 июня 2010

У меня есть анимация jQuery, которая положительно отказывается от зацикливания.Он будет проигрываться через анимацию один раз, а затем завершится.

Вот оно: http://stackoverflow.quickmediasolutions.com/stackad/fancy.html

Вот соответствующий раздел кода:

function DoAgain()
{
    $('#block').stop().css('marginLeft','0px');
    var width = ($('#block').width()) / 2;
    var length = (1000 * num_ads) / document.getElementById('speed').value;
    $('#block').animate({marginLeft: '-=' + width},length,'linear',
      function() {
        DoAgain();
    });
}

Я пыталсяотлаживать приложение с помощью консоли Chrome JavaScript, но в соответствии с этим все работает.(Без ошибок, DoAgain() будет вызван в порядке, и т. Д.)

Я действительно застрял здесь - будет полезен толчок в правильном направлении.

Ответы [ 2 ]

1 голос
/ 20 июня 2010

Я действительно не знаю почему, но ваш stop(), кажется, сломал его. Здесь я исправил это для вас:

http://jsfiddle.net/34dvF/3/

function DoAgain()
{
    $('#block').css('marginLeft','0px');
    var width = $('#block').width() / 2;
    var length = (1000 * num_ads) / $('#speed').val();
    $('#block').animate({marginLeft: '-=' + width}, length, 'linear', DoAgain);
}

Тебе действительно не нужен stop(), не так ли? Анимация уже завершена до повторного вызова функции.

0 голосов
/ 20 июня 2010

Просто подумал, что поделюсь этим решением со всеми вами:

Очевидно, что stop() можно сделать только для анимированного элемента, поэтому я вставляю следующее:

$('table:animated').stop(true,false);

... и анимация будет остановлена, только когда она запущена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...