计算元素位置

时间:2011-04-21 15:44:05

标签: javascript jquery html

我想用jQuery计算<div>的垂直位置。

我该怎么做?

以下是描述我的意思的插图:

enter image description here

5 个答案:

答案 0 :(得分:10)

我认为你正在寻找它从页面顶部的偏移量,对吗?

$('#div').scrollTop();

如果不是这样,那么偏移可能会起作用:

$('#div').offset().top;

好的,既然它需要相对于父级,请尝试以下方法:

$('#div').position().top;

答案 1 :(得分:2)

$('#innerDiv').position()
  

获取当前的坐标   匹配集合中的第一个元素   元素,相对于偏移量   父

jQuery Manual for position()

答案 2 :(得分:1)

我认为你正在寻找

$(elem).offset();

http://api.jquery.com/offset/

如果你想要它相对于它的容器,那么你就是http://api.jquery.com/position/了。

答案 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;