2012-03-28 11 views
4

Ähnlich einem Problem beschrieben here, in bestimmten Situationen wird $(window).scrollTop() durch eins in Firefox deaktiviert sein.scrollTop um 1 Pixel in Firefox

Ich verwende diese zu erkennen, ob die vertikale Bildlaufleiste den Boden erreicht hat:

if ($(window).scrollTop() == $(document).height() - $(window).height()) 
{ 
    // bottom reached 
} 

Dies funktioniert. Aber ich habe gerade zufällig entdeckt, dass es nur die meiste Zeit funktioniert. Hier ist das Protokoll von einem Fall, wo es schief geht. scrollTop sagt, ich habe 611 Pixel gescrollt, difference sagt, dass ich 612 Pixel scrollen kann.

scrollTop: 611 
doc height: 933 
win height: 321 
difference: 612 

Gibt es etwas falsch mit dem Code? Oder ist das ein Problem mit Firefox? Im letzteren Fall kann ich es ändern, um zu überprüfen, ob 5 oder weniger Pixel übrig sind. Aber wenn der Code falsch ist, möchte ich es beheben.

+0

Kannst du nicht einfach schreiben: 'if ($ (Fenster) .scrollTop()> = $ (document) .height() - $ (Fenster) .height()) {...} '? – meeDamian

+0

@ chester1000 Nein, denn wenn Sie sich die Werte ansehen, 'scrollTop' <' difference'. – Stijn

+2

Nur ein Gedanke, könnte dies durch Sub-Pixel-Rendering verursacht werden. http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx?Redirected=true –

Antwort

1

Verwendung Code unten funktioniert

if ($(window).scrollTop() >= ($(document).height() - $(window).height()-1)) 
+0

Danke für die Antwort, obwohl Das ist ein Workaround ähnlich dem in der Frage beschriebenen. – Stijn

Verwandte Themen