5

この小さなスクリプトを使用して、ユーザーが一番下までスクロールしたかどうかを定義しています

$(window).scroll(function(){

    if($(window).scrollTop() == $(document).height() - $(window).height()){
        if(!taskFired){
            taskFired = true;
            $("#loading_gif").css("display", "block");
            setTimeout(loadMoreMabs, 1500);
        }
    }

});

しかし、底に達するに関数 loadMoreMabs を起動したくありません。どうすればいいですか?高さで + と - を試してみましたが、実際にはわからないことを試しているようです。

4

1 に答える 1

8

あなたの質問のタイトルがあなたが望むものを示唆しています

50 などの値から値を引いて$(document).height()、下から 50 ピクセルの読み込みを開始します。

if($(window).scrollTop() <= ($(document).height() - 50) - $(window).height()){

これは jsfiddle の小さなデモです。loadMoreMabs 関数を満たすダミー関数を作成しました。

http://jsfiddle.net/sg3s/UwXaw/

底に近づくたびに発火し、1500 ミリ秒が経過します。

一番下に到達した場合にのみ(すぐに)発火させるようにします。

(実際には別のことを示唆しているため)

http://jsfiddle.net/sg3s/UwXaw/1/

トリックはおそらく>=式の中にあり、スクロールトップがドキュメントからウィンドウの高さを引いたものと同じかそれよりも高い場合に起動するようにします...

于 2012-06-05T18:19:04.523 に答える