2012-03-28 61 views
4

類似於描述的問題here,在某些情況下,$(window).scrollTop()將在Firefox中關閉一個。scrollTop off by 1 pixel in Firefox

我用這個來檢測,如果垂直滾動條已經到達底部:

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

這工作。但我只是偶然發現,它只適用於大部分時間。以下是出錯情況下的日誌。 scrollTop說我滾動611像素,difference是說我能夠滾動612像素。

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

代碼有問題嗎?或者這是一個Firefox的問題?在後一種情況下,我想我可以改變它來檢查它是否剩餘5個或更少的像素。但是如果代碼錯了,我想解決它。下面的代碼

+0

你就不能寫:'如果($(窗口).scrollTop()> = $(文件).height() - $(窗口).height ()){...}'? – meeDamian 2012-04-25 18:10:05

+0

@ chester1000不,因爲如果你看看這些值,'scrollTop' <''差異'。 – Stijn 2012-04-26 07:47:42

+2

只是一個想法,這可能是由亞像素渲染引起的。 http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx?Redirected=true – 2012-05-13 23:31:02

回答

1

使用它的工作原理

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

感謝您的回答,雖然這是一個類似於問題中描述的解決方法。 – Stijn 2012-06-28 09:16:34