2016-05-17 10 views
0

Ich mache eine unendliche Scroll mit jquery und ich versuche zu erkennen, wenn die Unterseite der Haupt div den unteren Rand des Browser-Fensters erreichen. Mein Problem ist, dass in meinem Code, wenn der Benutzer zu schnell scrollt, die Gleichheit nicht auf den Code gefeuert wird. Wie kann man das verhindern?JQuery scrollTop Gleichheit funktioniert nicht beim Scrollen zu schnell

Der Code $(this).scrollTop() === exactPoint wird nicht ausgelöst, wenn der Benutzer zu schnell scrollt.

Hier ist eine Geige mit einem Beispiel dafür, wie ich das Verhalten mache.

http://jsfiddle.net/CCwYm/1/

Ich habe hier gegoogelt und gesucht und kann etwas, das mir nicht gefunden helfen.

+0

Verwendung '$ (this) .scrollTop() <= bottom' aktuellen Punkt –

+0

Verwenden' erkennen> ', so dass Sie den genauen Punkt nicht verpassen? – DBS

+0

Aber was, wenn ich den genauen Punkt mit dem '===' erkennen möchte? –

Antwort

0

Da Sie eine unendliche Scroll-Seite mit jQuery machen und Ihr Problem darin besteht, dass Sie den aktuellen Seitenrand nicht richtig erkennen können, bevor neuer Inhalt die Höhe des Dokuments ändert, versuchen Sie es (basierend auf dem Code) von Ihrer Geige)

console.log($(document).height()); 
 
console.log($(window).height()); 
 
console.log($(document).height() - $(window).height()) 
 
var bottom = $(document).height() - $(window).height(); 
 

 
$(document).scroll(function(){ 
 
    \t console.log($(this).scrollTop()); 
 
    if ($(this).scrollTop() < bottom) { 
 
     console.log("scrolling");  
 
    } else { 
 
     alert("bottom"); 
 
     $('.test').clone().appendTo("body"); 
 
     bottom = $(document).height() - $(window).height(); 
 
    } 
 
});
.test{ 
 
\t width: 100px; 
 
    height: 1000px; 
 
    background-color: black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="test"></div>

+1

Wenn ich das '===' mit dem '==' der Code funktioniert das gleiche .. wenn Sie die Konsole unter überprüfen Entwickler-Tools des Explorers, können Sie sehen, dass, wenn ich scrollen, um schnell die Gleichheit wird nicht gefeuert. –

+0

@Phoenix_uy ich das Snippet in jsfiddle lief nicht mit '===' es funktionierte gut mit '==' –

+0

Das Problem mit Ihrer Geige ist, dass Ihr Code ausgelöst wird, wenn das Ende des Dokuments erreicht wird ... und Es gibt keine Möglichkeit, weiter scrollen zu können, daher wird immer die Unterseite der Konsole angezeigt. Mein Code muss erkennen, dass die Unterseite des "div" bis zum unteren Rand des Fensters reicht. Wenn ich also zu schnell scrolle und diesen Punkt passiere, wird er nicht analysiert. –