Frage "Unendliche Scroll" -ähnlich. Lass es vor dem Boden abfeuern


Ich verwende dieses kleine Skript, um zu definieren, ob der Benutzer nach unten gescrollt hat

$(window).scroll(function(){

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

});

Aber ich möchte die Funktion loadMoreMabs abfeuern Vor der Boden ist erreicht. Wie würde ich das tun? Ich habe versucht, + und - mit den Höhen, aber ich experimentiere mit etwas, das ich nicht wirklich verstehe.


5
2018-06-05 18:15


Ursprung


Antworten:


Was Ihr Fragentitel Ihnen nahe legt

Subtrahieren Sie einen Wert von $(document).height() etwas wie 50, um 50 Pixel von unten zu laden.

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

Hier ist eine kleine Demo in jsfiddle, ich habe eine Dummy-Funktion gemacht, um die loadMoreMabs-Funktion zu erfüllen

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

Feuert jedes Mal ab, wenn du in der Nähe bist und die 1500ms ablaufen.

Nun, um es (NUR) sofort zu feuern, wenn es ganz unten ankommt.

(da es eigentlich etwas anderes vorschlägt)

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

Der Trick ist wahrscheinlich der >= Stellen Sie in der Gleichung sicher, dass es ausgelöst wird, wenn scrollTop gleich oder HÖHER als das Dokument minus der Fensterhöhe ist ...


8
2018-06-05 18:19