【问题标题】:Get relative position of an element to its parent获取元素与其父元素的相对位置
【发布时间】:2014-10-02 04:50:45
【问题描述】:

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

假设我们有一个名为“clone”的图像对象,并且有一个 div 作为其父对象:

var parent = clone.parent().offset();
var pos = clone.offset();

如果我将图像拖动到 div 的左上角,我将得到几乎相同的值。但是如果我这样做呢:

var top = pos.top - parent.top;
var left = pos.left - parent.left;

它会给我图像与其父级的相对位置,对吗?但是如果我必须存储这些值并在不同的浏览器大小上显示它们会发生什么? 答案很简单,它们不会显示在 div 内,因为位置可能会改变。

经过这个小小的解释,我的问题是: 有没有办法避免这种问题,直接取其父级的相对位置?

这是我正在使用的实际代码,因此您可以看一下,并尝试弄清楚如何使其正常工作! http://dpaste.com/3M1MGQW

【问题讨论】:

  • 看看.position()api.jquery.com/position
  • 如果问题与大小有关,您不能使用基于百分比的职位吗?如果没有 jsfiddle.net 上的演示,很难理解更高级别的问题

标签: javascript jquery html css


【解决方案1】:

你有没有设置位置:相对;到父级,所以位置是相对于它的?

好吧,除了静态之外的任何定位都可以,但是相对不指定顶部和左侧可能是最轻松的

【讨论】:

  • 我已经用相对位置设置了父级,但是我得到了一个不同的值,这很可笑..
  • 在浏览完你的代码后,我看到我唯一会改变的是 $(this).append (clone);在第 48 行,通过 id 直接访问容器 $("#container_map").append (clone);
  • 不用改了,因为它被引用了:)
  • 我知道它应该是一样的,但有时这并不是我们认为应该的......
  • 我注意到当我在 div 中放置一个元素时,它会神奇地附加到其他地方..
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多