0

スクロールがdivの一番下に達したときにイベントを取得する必要があり、以下のコードに従って、スクロールのイベントが一番下に達していますが、問題は、複数のイベントを取得していて、スクロールしている限り同時に発生していることです一番下にあります。

最初のイベントの処理後にイベントを発生させるのではなく、イベントの発生を継続的に停止する方法はありますか?

    $("#divid").bind('scroll', function() { 

    //Getting continuous event as far as scroll is in bottom

      if($('#divid')[0].scrollHeight - $('#divid').scrollTop() <= $('#divid').outerHeight()) 
      {
           //Code here---
      }
}); 
4

1 に答える 1

0

一連の連続イベントの開始時または終了時に、イベント ハンドラーを 1 回起動するには、それらをデバウンスできます。

http://benalman.com/projects/jquery-throttle-debounce-plugin/

function start() {
    // code to run at start of event
}

function end() {
    // code to run at end of event
}

$(window).scroll($.debounce(250, true, start));
$(window).scroll($.debounce(250, false, start));

最初の引数は、別のイベントと見なされるまでに経過するミリ秒数です。2 番目の引数は、一連のイベントの開始時または終了時にイベント ハンドラーを実行するかどうかを決定します。

あなたの場合、「終了」バージョンを使用して、ユーザーがスクロールを停止したときにスクロール位置を確認できます。

于 2013-10-24T11:54:13.800 に答える