2011-10-15 3 views
65

javascript/jQueryを使用して、ページの上部から要素がDOM内に存在する位置までの垂直距離を見つけるにはどうすればよいですか?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.top); –

答えて

143

使用.offset()要素と、文書の頂部との間の距離を取得する:

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

ロブWの答えが正しいか - 全ページの最上部からのオフセットあなたを与えること。

あなたが閲覧可能な画面の上部からのオフセットを取得したい場合は、あなたがこれを行う必要があります。

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

希望に役立ちます!

+1

へようこそ: –

+2

ハハありがとう。だからこそ、Googleの検索ではいつも便利なヒットだったし、退屈していくつかの質問に答えてくれるだろうと思った。私はここで、SOの姉妹サイトであるServerFaultの答えを待っているうちに、ほとんどここを訪れています。私は長年のプログラマーで初心者の管理者です。 :) – thexfactor

+1

あなたが位置を制御している場合、これはコードの優れたビットです:固定要素! – Starkers

3

私が知る限り、.offset()は、現在のスクロール位置とドキュメントの先頭の距離を取得します。

あなたはこれを使用する必要があります。$("li.test").position().top

+0

はoffsetParentを基準にしており、これは親divではない可能性があります – aaron

0

使用$(要素).offset()トップをし、それをより正確にするために、それをページ上の既存の固定要素の高さを追加します。

関連する問題