0

グリッド ビューで画像を表示する Web アプリを構築しようとしています。いわゆる無限スクロール機能を実装しましたが、うまく機能します。問題は、ページの最後に到達する前に新しい画像の読み込みを開始するように 500 ピクセルのバッファーを追加したことですが、このバッファーは受け入れられません。トリガーされる前に、絶対下までスクロールする必要があります。私に何ができる?

私はこのソリューションを使用しています: http://www.hawkee.com/snippet/9445/

これは私のスクロールコードです:

$(window).scroll (function () {

 if ($(window).scrollTop () >= $(document).height () - $(window).height () - 500) {

  if (!self.loading) {

   if (self.stop) { return; }

    if (!self.pause) { self.append (); }

   }

  }

});
4

1 に答える 1

0

jQuery のどのバージョンを使用していますか? 私は最近、あなたが説明していることをほぼ正確に実装したばかりで、完全に機能します。要素が上に移動している$(document).offset()['top']かどうかを確認するために見てみるとよいでしょう。body

また、すべてのif()ステートメントがブラウザの速度を低下させ、scroll()イベント レートを低下させている可能性もあります。これが発生している場合、イベントがトリガーされる前に、バッファーの奥までスクロールする可能性があります。

これをスピードアップするためのヒント:

  • 単純/バイナリ チェックを複雑な比較の前に移動します。そうすれば、それらが false を返す場合、何も計算する時間を無駄にすることはありません
  • >=演算子をに置き換えて、>(おそらく無視できる程度の) 処理能力を節約します。

以下が機能しない場合は、jQuery のバージョンまたは他のコード行のいずれかです。

$(window).scroll(function(e){
  if(!self.loading && !self.stop && !self.pause && ($(window).scrollTop() + $(window).height()) > $(document).offset()['top'] + $(document).height() - 500){
    self.append();
  }
})

乾杯、

マイク

于 2012-09-19T22:35:31.607 に答える