2012-12-03 61 views
2

我想知道頁面完全加載時的窗口滾動位置。頁面完全加載時的窗口滾動位置

當我點擊一個帶有id的鏈接時,頁面會根據這個id加載元素。當頁面加載時,我想知道窗口的位置。

的index.html

<a href="page.html#2012_8">link</a> 

page.html中

<script> 
$(window).load(function(){ 
    console.log($(window).scrollTop()); 
}); 
</script> 

<p id="2012_8">This is some text in a paragraph.</p> 

當我點擊鏈接,控制檯日誌得到0。當我刷新page.html中,控制檯日誌得到正確的窗口滾動位置。爲什麼?謝謝你的幫助。

+0

小提琴演示行爲:http://fiddle.jshell.net/2bL7X/show/。點擊「開始!」應該向你發送一個不同的小提琴的哈希標記'foobar',並且你應該看到一個帶有「加載5027」或類似的彈出窗口。 – apsillers

回答

4

嘗試使用

console.log($(document).scrollTop());

我的螢火測試,它工作得很好。

+0

謝謝,這解決了我的問題:D – Matt

+0

歡迎你:P – joao

1

當您更改窗口哈希時,不會觸發'load'事件。爲了讓事件觸發,你應該鉤入hashchange事件。

$(window).on('hashchange',function() { 
    console.log($(window).scrollTop()); 
}); 

$(document).ready(function() { 
    $(window).trigger('hashchange'); 
}); 
+0

這適用於此嗎? OP正在導航到一個*完全不同的頁面*('index.html' - >'page.html'),它有一個散列。 – apsillers

+0

@apillers沒有看到!謝謝。此解決方案仍應在另一頁上工作。但根本不回答這個問題! – bluetoft

+0

@Bluetoft的確,這不是我的問題的答案。 – Matt

-1

您可以使用

$(document).ready(function(){ 
console.log($(document).prop('scrollHeight')); 
}) 

,或者您可以使用ATTR這個

$(document).ready(function(){ 
console.log($(document).attr('scrollHeight')); 
}) 
+0

-1:['scrollHeight'](https://developer.mozilla.org/en-US/docs/DOM/element.scrollHeight)用於度量元素的可滾動內容的高度。它不會根據滾動進行更改;當元素內包含的內容增加或減少時,它會改變。 OP需要滾動偏移量,即頁面當前滾動*多少。 – apsillers