我想用jQuery计算<div>
的垂直位置。
我该怎么做?
以下是描述我的意思的插图:
答案 0 :(得分:10)
我认为你正在寻找它从页面顶部的偏移量,对吗?
$('#div').scrollTop();
如果不是这样,那么偏移可能会起作用:
$('#div').offset().top;
好的,既然它需要相对于父级,请尝试以下方法:
$('#div').position().top;
答案 1 :(得分:2)
答案 2 :(得分:1)
答案 3 :(得分:1)
jQuery有几个函数可以帮助您找到所需的偏移量。
var element = $("#your_element");
// Get the current coordinates of the first element in the set of matched elements, relative to the document.
element.offset()
// Get the closest ancestor element that is positioned.
element.offsetParent()
// Get the current coordinates of the first element in the set of matched elements, relative to the offset parent.
element.position()
// Get the current horizontal position of the scroll bar for the first element in the set of matched elements.
element.scrollLeft()
// Get the current vertical position of the scroll bar for the first element in the set of matched elements.
element.scrollTop()
有关详情,请参阅jQuery offset api page。
答案 4 :(得分:0)
我认为jQuery API“position()”不是你想要的,因为它被定义为“元素相对于偏移父元素的当前位置”(基本上它对应于element.offsetTop)
因此,如果您希望元素的顶部位置相对于其父元素(不必是偏移父元素),请改用:
var top = (element.parentNode == element.offsetParent) ? element.offsetTop : element.offsetTop - element.parentNode.offsetTop;