Почему анимация Jquery ускоряется после первого запуска? - PullRequest
3 голосов
/ 29 июля 2010

Я делаю основной шатер, который берет набор элементов списка и прокручивает их (это для спортивного сайта, им нужен тикер новостей).

Все работает, кроме первого запуска, продолжительность увеличивается.

var duration = 10000;
var textScroll = function(toScroll, time)
   {
      toScroll.animate({left:"-"+toScroll.children().text().length+"px"},time,"linear", function()
      {
         $(this).css({left:toScroll.children().text().length});
         textScroll($(this),duration);
      });
   };
   textScroll($('.textScroll ul'), duration);

Как я уже сказал, он прекрасно прокручивается. Просто становится быстрее после первой прокрутки.

Есть идеи?

1 Ответ

1 голос
/ 29 июля 2010

Вероятно, он начинается в другой позиции left в первой анимации, и поэтому будет казаться, что анимация будет медленнее, поскольку расстояние анимации меньше.Похоже, вы устанавливаете свойство CSS left элемента на toScroll.children().text().length - но это происходит только после первой анимации.Какое значение имеет left до начала первой анимации?

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