2013-11-14 74 views
3

身高是(例如)200%。有一個div。當你點擊它時,瀏覽器應該會發出警告,你滾動了多少(如標題所示,位於文檔頂部,以像素爲單位)。我試過兩個變種,但他們沒有工作:(如何從像素頂部獲取窗口位置

var doc = $(document) 
var pos = doc.scrollTop(); 

$(".block").click(function() { 
alert('Distance from top is ' + pos + ' pixels') 
}) 

如果我使用scrollTop,它提醒「......爲0像素」,即使我在文件的底部。

如果我使用offset,它提醒「......是不確定的像素」。 我應該怎麼辦?

+1

http://api.jquery.com/position/ – mplungjan

+0

爲什麼你在點擊處理程序外設置'pos'?你想在點擊時獲得位置,而不是在之前,是嗎?如果你認爲'pos'會被實時更新,你錯了:-) – devnull69

+1

你必須在滾動函數中寫入它。由於var pos在開始時被初始化,它將始終爲零 – wilsonrufus

回答

0

這裏是一個跨瀏覽器的解決方案我在一個項目實施。算了,我發現的,還是我最好的信用!可能在另一個SO問題上。

function getScrollTop(){ 
    if(typeof pageYOffset!= 'undefined'){ 
     //most browsers except IE before #9 
     return pageYOffset; 
    } 
    else{ 
     var B= document.body; //IE 'quirks' 
     var D= document.documentElement; //IE with doctype 
     D= (D.clientHeight)? D: B; 
     return D.scrollTop; 
    } 
}