【问题标题】:Use jQuery to position element relative to another that is not the parent使用 jQuery 相对于另一个不是父元素的元素来定位元素
【发布时间】:2011-09-24 13:55:32
【问题描述】:

如果你看这里:http://dev.driz.co.uk/tips/ 你会看到我正在尝试一些 Facebook 盗版工具提示。

我要学习的是如何相对于另一个对象定位尖端。因此,例如,如果用户将鼠标悬停在红色框上,它将显示相关的工具提示,但与箭头指向红色框的对象相关。我考虑过使用outerWidth 和height 甚至position() 方法。但不确定我将如何使用它。如果用户滚动页面,还需要定位箭头,例如框上的位置并上下移动它。移动元素。

如果有人能提供一些很棒的例子。

注意,我现在并不想做悬停位,只是想让笔尖相对于另一个对象定位自己。

有人可以帮忙吗? 谢谢

【问题讨论】:

  • 如果您只想在鼠标悬停在红框上时显示工具提示,则可以使用当前鼠标位置
  • 我不想做悬停!我正在尝试将其定位到与其他对象的关系。
  • 看这里:link

标签: jquery


【解决方案1】:
var top = $("#link").offset().top;
top += $("#link").height();
var left = $("#link").offset().left;
$("#tip").css({
    top: top+"px",
    left: left + "px"
});

此代码相对于#link 定位#tip。您很可能希望在#link 下方显示#tip,因此top += $("#link").height();

【讨论】:

  • 不是父子元素!请阅读问题标题;)
  • 经过编辑,这看起来是正确的。一般的技术是您将使用 $("#link").offset() 来获取红色框相对于文档的位置,然后使用这些坐标以及绝对或固定定位作为$("#tip") 的坐标。
  • dgvid 是对的。使用offset() 代替position(),因为第二个函数返回相对于父级而不是根的偏移量。
  • 再试一次,我不小心用offset("top")代替offset().top
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-14
  • 2013-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
相关资源
最近更新 更多