0

ページのいくつかの要素を遅延読み込みしています。

ただし、上部には、ページの最後の要素(UIタブ内のiframe)に対する召喚状があります。CTAは、を使用してアニメーションを実行しscrollTopます。

私のクリック機能で

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

問題は、スクロールがトリガーされると、アイテムがビューポートに入るときにレイジーロードもトリガーされることです。そのため、ターゲットが表示され、アイテムが上記の遅延読み込みを完了すると、ターゲットが表示されなくなります。

これに対抗するための良い方法はありますか?

4

1 に答える 1

2

ページをアニメーション化するときに追跡するisAnimatingブール変数を作成します。

アニメーション呼び出しの直前にisAnimatingをtrueに設定し、animateコールバックでfalseに戻します。

遅延読み込みをどのように呼び出しているかはわかりませんが、isAnimatingがtrueに設定されている場合に、条件が実行されないように設定する必要があります。

isAnimating = true;
$('html,body').animate({scrollTop: $("#customerReviews").offset().top}, 700, "easeInOutSine", function(){
      isAnimating = false;
});
于 2012-10-30T17:43:02.793 に答える