如何使用jQuery查找距元素顶部px的垂直距离


78

如何使用javascript / jQuery找到从页面顶部到DOM中元素存在的垂直距离?

我有类似的东西

<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(); 警报(position.top);
乔纳斯m

Answers:



103

Rob W的答案是正确的-这将使您偏离整页顶部。

如果要从可见屏幕的顶部获取偏移量,则应执行以下操作:

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

希望有帮助!


2
哈哈谢谢。SO一直以来都是Google搜索的一个热门选择,我很无聊,所以我想回答一些问题。在等待SO的姊妹站点ServerFault回答时,我主要是在这里四处逛逛。我是一名长期程序员和新手管理员。:)
thexfactor 2011年

1
如果您要控制位置,那么这是一段很棒的代码:固定元素!
Starkers


0

使用$(element).offset()。top并向其添加页面上现有固定元素的高度,以使其更准确。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.