Приостановка и возобновление объекта JQuery.animated - PullRequest
0 голосов
/ 03 мая 2011

У меня возникают проблемы при попытке приостановить и возобновить объект JQuery.animated, он останавливается нормально, но как только он возобновляет анимацию, он сбрасывает анимацию с ее текущей позиции, так что в конечном итоге он движется мимо точки, где он должен был остановиться. .

Вот jsFiddle: jsFiddle , чтобы помочь объяснить это лучше.

Спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 03 мая 2011

Это то, что вы пытались достичь?

Я просто использовал предложения от @ DarthJDG , также добавил высоту элемента, чтобы он не шел ниже границы окна.

http://jsfiddle.net/HemUe/2/

3 голосов
/ 03 мая 2011

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

Таким образом, если вы начнете линейную анимацию в течение 5 секунд, чтобы переместить элемент на 100 пикселей и приостановите анимацию через 2 секунды, он уже переместился на 40 пикселей. Когда анимация возобновляется, анимация начинает двигаться с + 100px в течение 3 секунд, и в итоге элемент перемещается в общей сложности на 140px.

Решение состоит в том, чтобы использовать абсолютные значения при вызове $box.animate(), преобразуя относительные значения в абсолютные, а затем при необходимости. Вместо перемещения "+="+windowHeight установите его на $box.position().top + windowHeight.

Возможно, вы захотите сообщить об этой ошибке / ограничении разработчику плагина, но, поскольку версия плагина всего 0,1, он может быть в курсе.

...