2012-10-30 2 views
0

Мы ленивы загружаем несколько элементов нашей страницы.держать фокус на элементе, в то время как элементы - ленивые загрузки выше - jquery scrollTop

Однако в верхней части экрана есть призыв к действию для последнего элемента на странице (iframe внутри вкладок ui). CTA делает анимацию с использованием scrollTop.

В моей мыши функции

$('html,body').animate({scrollTop: $("#customerReviews").offset().top}, 700, "easeInOutSine");

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

Какие-либо хорошие методы для противодействия этому?

ответ

2

Я бы создал переменную aAnimating boolean для отслеживания, когда вы анимируете страницу.

Прямо перед вашим набором анимированных вызовов isAnimating to true и установите его обратно в false в обратном вызове animate.

Я не уверен, как вы называете ленивую нагрузку, но вам нужно будет указать, как установить условие, чтобы не работать, когда isAnimating установлено в true.

isAnimating = true; 
$('html,body').animate({scrollTop: $("#customerReviews").offset().top}, 700, "easeInOutSine", function(){ 
     isAnimating = false; 
}); 
+0

Ах. Хорошая идея! Игнорировать lazyload при анимации. Хороший простой подход. – Jason