如果我有以下标记:
我想得到孩子相对于其父母的位置,唯一的方法如下:
x = parseInt($('#child').css('left')); // returns 0 as needed
y = parseInt($('#child').css('top')); // return 0 as needed
因为如果我做以下事情:
x = $('#child').position().left; // most likely will not return 0
y = $('#child').position().top; // most likely will not return 0
由于偏移方法还添加了祖父母的边距,填充和边框(无论是具有默认边距的身体元素还是任何其他祖父母元素),位置都是错误的.
我需要得到正确的位置(在我的例子中它将是0,0)但我怀疑jQuery中没有可以为我计算它的方法?
最佳答案
.position()是正确的.它将为您提供相对于元素的偏移父级的x和y值.您的#child元素相对于其自己的偏移父元素定位,即< body>.为了使#parent成为它的偏移父,给它一个相对或绝对的位置.