如何获取相对于特定父元素的偏移量?

16

我想获取一个元素相对于特定父元素而不是直接父元素或文档的偏移量。

我在互联网上搜索并找到了JQuery的offsetposition方法。但似乎它们不能帮助我解决这个问题(相对于特定父元素)

有什么帮助吗!


3
你可以始终像这样减去两个位置:$e.position().left - $e.parent().position().left - Teneff
2个回答

20

你可以尝试这个:

var offsetLeft = $('#myElement').position().left - $('#myElement').closest('#crazyAncestor').position().left;
var offsetTop = $('#myElement').position().top - $('#myElement').closest('#crazyAncestor').position().top;

6
加一个赞同“疯狂祖先”的。我们都有那样的祖先。 - ne1410s
2
但这不会考虑中间祖先的位置。 - user151496

0

你需要减去 OffSet,因为它隐含了导航窗口

var offset = GetOffSet( $("#a"), $("#b") );

function GetOffSet( elem, elemParent ) {
    return elemParent.position().left - elem.parent().position().left;
}

这实际上会返回一个负偏移量,因为你是从子元素的偏移量中减去父元素的偏移量,而不是相反。 - Michael McTiernan
2
好的,那就改一下吧 :D 呵呵 - balexandre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接