Самый плавный способ изменить анимацию jquery.animate. - PullRequest
0 голосов
/ 07 июля 2011

Я анимирую элемент на экране, используя jQuery.animate в ответ на событие прокрутки окна, например:

$(window).scroll(function(){
  $("#myElement").stop().animate({top: -0.5 * $(window).scrollTop()});
});

Поскольку событие прокрутки запускается снова и снова, когда вы прокручиваете окно, мне нужно вызвать функцию .stop () для моего элемента, чтобы немедленно запустить мою следующую анимацию.

Кажется, это работает нормально, но может быть немного медленным, когда анимируется много контента. Есть ли лучший способ обновить целевые значения анимации в середине анимации? Что я могу сделать, чтобы улучшить производительность этого кода?

1 Ответ

0 голосов
/ 07 июля 2011

Вы когда-нибудь задумывались о более конкретном .css изменении?

$(window).scroll(function(){
  $("#myElement").css({top: -0.02 * $(window).scrollTop()});
});

Я просто ввел произвольное число, но, возможно, стоит попробовать и поиграть. Это должно быть гладко, если вы определитесь с правильными модификаторами.

Также: было бы хорошо, если бы вы приняли еще несколько ответов. Вы приняли только 31% вопросов, которые задали. Просто мысль.

...