2

我想获取元素相对于其父元素的位置。所以为此我使用 jqueryposition function我创建了一个JsFiddle。

在这个小提琴中,我正在访问元素的top & left位置。#child它应该返回top : 0 and left : 0,因为它是 element 的子#p元素,并且它的位置是相对的,但它正在返回top : 223px and left : 1px。谁能帮帮我吗 ?

4

2 回答 2

2

这是调整问题是您没有将父级的位置指定为相对位置。所以孩子的位置是相对于身体计算的

<style type="text/css">
#gp {
    width: 500px;
    height: 200px;
    margin: 0;
    border: 1px solid black;
    background-color:gray;
    overflow:hidden;
}

#p {
    width: 600px;
    height: auto;
    float: left;
    position: relative;
}

#child{
    position: relative;
}
</style>

<div id="gp">
 <div id="p">
     <div id="child">
     </div>
 </div>
</div>

jQuery(document).ready(function(){
    alert($("#child").position().top + " " + $("#child").position().left);
});
于 2012-10-12T07:31:57.860 回答
0

也许是这样的:

function relative_pos(node) {
  var parentOf = $(node).parent().offset();
  var child = $(node).offset();
  return {top: child.top - parentOf.top, left: child.left - parentOf.left};
}

console.log(relative_pos("#child"));

尝试 !!!

于 2012-10-12T07:38:45.860 回答