代码之家  ›  专栏  ›  技术社区  ›  i_am_jorf

获取HTML元素相对于窗口的边界框的正确方法是什么?

  •  7
  • i_am_jorf  · 技术社区  · 14 年前

    mouseover 对于一个HTML元素,我需要在windows坐标系中获取它的边界框(即内置的XUL document browser.XUL)。

    最明显的开始点是在mouseover事件处理程序中放入如下内容:

    var rect = e.target.getBoundingClientRect();
    

    popup positions ),所以我需要转换坐标。

    我尝试了以下步骤(在xuldom中)来获取偏移量来进行翻译,它适用于某些站点,但不是所有站点,而且似乎没有考虑侧边栏所需的x翻译。

    var appcontent = document.getElementById("appcontent");
    if (appcontent) {
      chromeOffsetX = r.left;
      chromeOffsetY = r.top;
    }
    

    注意 IDisplayServices::TransformRect() Firefox也有类似的功能吗?

    现在是赏金!

    2 回复  |  直到 14 年前
        1
  •  0
  •   Community CDub    7 年前

    This question 具有计算元素相对于可见窗口的x和y的代码。不确定它是否回答了你的问题。

        2
  •  0
  •   i_am_jorf    14 年前

    事实证明,获取位置是不相关的,因为可以使用以下方法相对于元素定位项:

    hoverPanel.openPopup(someElement, "overlap", offsetX, offsetY, false, false);