2011-10-15 36 views
65

如何查找從頁面頂部到元素在DOM中使用javascript/jQuery存在的位置的垂直距離?如何使用jQuery在元素的px中查找頂部的垂直距離

我有類似

<ul> 
    <li>one</li> 
    <li>one</li> 
    <li>one</li> 
    <li>one</li> 
    <li class="test">one</li> 
    .... 
    .... 
    .... 
    <li>one</li> 
</ul> 

例如在這裏,我想找到的li#test元素從頁面頂部的垂直距離。

我試過.scrollTop()但它總是爲0!

+1

這是你在找什麼? var position = $('li#test')。position(); alert(position.top); –

回答

143

使用.offset()獲得距離的元素和文檔的頂部之間:

$("li.test").offset().top 
89

羅布·W公司的答案是正確的 - 這將使你從整個頁面的頂部偏移。

如果你想從可視屏幕頂部的偏移量,你應該這樣做:

var viewableOffset = $("#li.test").offset().top - $(window).scrollTop(); 

希望幫助!

+1

歡迎來到SO :) –

+2

哈哈謝謝。 SO總是對Google搜索有用,而且我很無聊,並且認爲我會回答一些問題。我主要在這裏等待SO的姊妹網站ServerFault上的答案。我是一個長期的程序員和新手管理員。 :) – thexfactor

+1

這是一個很棒的代碼,如果你是控制位置:固定元素! – Starkers

3

據我所知.offset()得到當前滾動位置和文檔頂部之間的距離。

您需要使用此:$("li.test").position().top

+0

相對於offsetParent,它可能不是父div – aaron

0

使用$(元素).offset()的頂部和添加現有的固定元素的高度頁面它,使之更加精確。

相關問題