2012-02-27 51 views
4

爲了加載頁面的Facebook或Twitter沒有在他們的網站上,向下滾動,我已經使用jQuery試過這樣:

$(window).scroll(function(){ 
    if ($(window).scrollTop() == $(document).height() - $(window).height()){ 
     //do something 
    } 
} 

而且如果我在IF中使用「alert('xx')」,Firefox崩潰,我必須重新啓動它。

我使用的是Mac版的Firefox,但我想這不是一個重要的事實。

任何人對這裏發生了什麼有什麼想法? 謝謝。

+0

這是錯誤的錯誤'';'在滾動功能的結尾? – 2012-02-27 19:52:36

+0

您的代碼是否可能包含拼寫錯誤?因爲你粘貼的內容缺少'$(window).scroll();'調用的''''和';'。 – 2012-02-27 19:52:38

+0

對於我來說,無論用戶何時滾動,都可以手動設置滾動位置。 – 2012-02-27 19:57:12

回答

4

我有同樣的問題:它在Chrome中工作,但不是在Firefox和IE。調試後,我發現firefox中的$(document).height() - $(window).height()和$(window).scrollTop()之間存在1 px的差異,但不在chrome中。我的工作解決方案如下:

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

     //do something here 

    } 
+0

是的,這就是我對我對第一個答案的答覆之一所說的話。 – Alvaro 2012-08-27 23:38:38

+0

是的。這就是我在回答拳頭答案時所說的話。 – Alvaro 2012-08-27 23:39:42

1

scroll事件觸發很多次,導致您的Firefox瀏覽器崩潰。除了使用alert()的,使用console.log() ...

這裏是一個顯示有多少事件被觸發演示:http://jsfiddle.net/jasper/tQmRU/

+0

這不是問題所在。我並沒有談論在滾動上使用alert(),而只是在頁面底部顯示。只有當它進入那個IF時。 我終於找到原因了。我不知道爲什麼Firefox 11會計算一個大小爲1像素的錯誤。所以這樣做會工作: if($(document).height() - $(window).height()<= $(window).scrollTop()+ 1)... – Alvaro 2012-03-20 22:33:30

+0

我有同樣的問題,他是對的,這是警報(至少對我來說) – Tjorriemorrie 2012-03-28 13:03:31

0

我有發生,因爲我已經把一個Firebug的斷點滾動處理程序中,沒有類似的問題一個alert()。我改用console.log()進行調試,並沒有導致崩潰。