Javascript 获取元素相对于其父元素的相对位置

Javascript 获取元素相对于其父元素的相对位置,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如何获取元素相对于其父元素的位置 假设有一个名为“clone”的图像对象,其父对象是一个div: var parent = clone.parent().offset(); var pos = clone.offset(); 如果我在div的左上角向右拖动图像,我将得到几乎相同的值。但是如果我这样做呢: var top = pos.top - parent.top; var left = pos.left - parent.left; 它会给出图像相对于其父对象的相对位置,对吗?但是,如果我

如何获取元素相对于其父元素的位置

假设有一个名为“clone”的图像对象,其父对象是一个div:

var parent = clone.parent().offset();
var pos = clone.offset();
如果我在div的左上角向右拖动图像,我将得到几乎相同的值。但是如果我这样做呢:

var top = pos.top - parent.top;
var left = pos.left - parent.left;
它会给出图像相对于其父对象的相对位置,对吗?但是,如果我必须存储这些值并在不同的浏览器大小上显示它们,会发生什么呢? 答案很简单,他们不会出现在分区内,因为位置可能会改变

经过这个小小的解释,我的问题是: 有没有办法避免这种问题,并直接采取相对的立场,其家长


这是我正在使用的实际代码,因此您可以查看一下,并尝试找出如何使其正常工作

是否设置了位置:相对;相对于父对象,所以位置是相对于父对象的


好吧,任何其他的占有都是可行的,但是没有指定顶部和左侧的相对可能是最无痛的

看看
.position()
:如果问题与大小有关,你不能使用基于百分比的位置吗?如果没有像jsfiddle.netI这样的演示,很难理解更高级别的问题。我已经用相对位置设置了父级,但是我得到了一个不同的值,这非常可笑。在浏览了代码之后,我看到唯一需要更改的是$(this.append(clone);在第48行中,通过id直接访问容器$(“#container_map”).append(clone);没有必要更改它,因为它是引用它的:)我知道它应该是相同的,但有时这并不引用我们认为它应该是什么…我注意到,当我在div中放入一个元素时,它会神奇地附加到其他地方。。