Короче говоря, нет реальной поддержки для этого.
Причина в том, как это работает, это простая (ну, как можно более простая) только вперед модель:
.animate()
делается через setInterval()
для большинства вещей ( см. Источник здесь ). В большинстве случаев это упрощенный расчет, нам нужно перейти от значения x
к значению y
за n
миллисекунд. Таймер для jQuery происходит каждые 13 мсек, каждая анимация обновляется (перемещается на шаг) каждые 13 мс. Он делит ( длительность / общее время ) и вызывает шаг обновления для элемента, чтобы установить его значение стиля для этого шага .
Вы не можете "перемотать вперед" на самом деле, так как вам придется настраивать свойства, которые не отображаются после запуска анимации. Вы можете пропустить до конца (через .stop(boo, true)
) любую анимацию или .queue()
и .dequeue()
, если необходимо ... или даже запутаться с очередью напрямую, на $.data(element,'fxqueue')
, но это все. Что касается перемотки ... ну, анимации очищены ( с помощью .dequeue()
move ), так что это тоже вышло (кроме интервальных вычислений, которые все смотрят в будущее).
Так что нет, нет способа сделать это, по крайней мере, с помощью встроенной системы анимации. Это не значит, что это невозможно, скорее, код, уже написанный в ядре jQuery, не сильно вам здесь поможет.