在這個問題上,我發現FF和Chrome之間有區別(版本22.0.1229.94米)。 FF是對的(我會說)。窗口準備就緒並滾動後運行代碼
向下滾動時,頁面擊中然後刷新它的
$(window).ready(function(){
console.log($(document).scrollTop());
});
回調控制檯應該說窗口後滾動量已經準備好,但在Chrome它總是0
如何我可以在Chrome中顯示獲得scrollTop的數量嗎?
在這個問題上,我發現FF和Chrome之間有區別(版本22.0.1229.94米)。 FF是對的(我會說)。窗口準備就緒並滾動後運行代碼
向下滾動時,頁面擊中然後刷新它的
$(window).ready(function(){
console.log($(document).scrollTop());
});
回調控制檯應該說窗口後滾動量已經準備好,但在Chrome它總是0
如何我可以在Chrome中顯示獲得scrollTop的數量嗎?
像在評論中說的一些話,Chrome加載頁面,然後向下滾動。爲此 當jQuery的事件被觸發,滾動爲0時 你可以做一些工作,圍繞這樣的:
$(document).ready(function() {
function getScroll() {
var scroll = $(window).scrollTop();
...
}
getScroll();
$(window).scroll(getScroll);
});
所以在Chrome $(window).scroll();
會在頁面加載後立即被解僱。
我們想要將瀏覽器事件與用戶事件區分開來......您的演示不會這樣做。 –
確實,我們可以通過'setTimeout(update,1)'替換'$(window).scroll();'...... –
由OP測試並聲明不可靠。 –
問題是,的document.ready(在Chrome)是之前執行瀏覽器向下滾動到前點,這就是爲什麼你總是得到一個零值。這裏提供了一個解決方案:Get vertical position of scrollbar for a webpage on pageload when the url contains an anchor
該網址不包含錨點,因爲大多數用戶只是滾動然後刷新,滾動條「跳轉」到最後一個地方。 – vsync
_Where_是文檔_當它準備好了嗎?他們都可以是對的。 –
是的,我認爲這可能是每個瀏覽器實現的方式。但我想要做的是如此基本,必須有一種方法在頁面刷新上運行代碼並檢測一次滾動的數量...... – vsync
實際上,Chrome _first_加載_then_滾動。你可以嘗試'load'事件。也許Chrome瀏覽器會在_load_事件上滾動,這會在'DOMReady'通過後發生_way_事件。 –