2012-10-25 53 views
1

在這個問題上,我發現FF和Chrome之間有區別(版本22.0.1229.94米)。 FF是對的(我會說)。窗口準備就緒並滾動後運行代碼

向下滾動時,頁面擊中然後刷新它的

$(window).ready(function(){ 
    console.log($(document).scrollTop()); 
}); 

回調控制檯應該說窗口後滾動量已經準備好,但在Chrome它總是0

如何我可以在Chrome中顯示獲得scrollTop的數量嗎?

+0

_Where_是文檔_當它準備好了嗎?他們都可以是對的。 –

+0

是的,我認爲這可能是每個瀏覽器實現的方式。但我想要做的是如此基本,必須有一種方法在頁面刷新上運行代碼並檢測一次滾動的數量...... – vsync

+0

實際上,Chrome _first_加載_then_滾動。你可以嘗試'load'事件。也許Chrome瀏覽器會在_load_事件上滾動,這會在'DOMReady'通過後發生_way_事件。 –

回答

0

像在評論中說的一些話,Chrome加載頁面,然後向下滾動。爲此 當jQuery的事件被觸發,滾動爲0時 你可以做一些工作,圍繞這樣的:

$(document).ready(function() { 
    function getScroll() { 
     var scroll = $(window).scrollTop(); 
     ... 
    } 
    getScroll(); 

    $(window).scroll(getScroll); 
});​ 

所以在Chrome $(window).scroll();會在頁面加載後立即被解僱。

編輯:測試有http://fiddle.jshell.net/azaret/Mt65R/show/light/

+0

我們想要將瀏覽器事件與用戶事件區分開來......您的演示不會這樣做。 –

+0

確實,我們可以通過'setTimeout(update,1)'替換'$(window).scroll();'...... –

+0

由OP測試並聲明不可靠。 –