【问题标题】:Getting the co-ordinates of an element [duplicate]获取元素的坐标[重复]
【发布时间】:2011-09-27 13:09:36
【问题描述】:

如何在 onclick 事件后获取元素的坐标?我需要在被点击的图标下方放置一个叠加层。

有没有 Javascript 提供的这样的内置函数,而不是为此手动编写函数?

【问题讨论】:

  • 这是一个比看起来更复杂的领域。我建议使用一个好的库来节省您的时间和麻烦,无论是jQueryPrototypeYUIClosure 还是any of several others。他们还会做很多其他的事情来消除浏览器的差异,提供实用功能,让你专注于你真正想要构建的东西。
  • 回答直接问题:不,没有这样的内置函数。您必须在某些事件处理程序中使用 event 对象来提取元素的位置。
  • @T.J.根据问题历史,OP 正在使用 PrimeFaces,它附带 jQuery 和 YUI。

标签: javascript html


【解决方案1】:

在 YUI 中,我使用 getXY() 函数返回 DOM 中任何对象的绝对页面位置。 YUI2 中该函数的来源在这里:http://developer.yahoo.com/yui/docs/Dom.js.html

在 jQuery 中,您可能会使用 jQuery 对象的 .offset() 方法:http://api.jquery.com/offset/

您可以使用其中一种,也可以查看它们的实现,看看它们是如何为您自己编写代码的。

【讨论】:

    【解决方案2】:

    试试这个:

    function getGlobalPos(el) {
      var p = {x:0,y:0};
      while (el) {
        p.x += el.offsetLeft;
        p.y += el.offsetTop;
        el = el.offsetParent;
      }
      return p;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2013-10-09
      • 2013-03-20
      • 2019-02-04
      • 2019-09-06
      • 2011-08-15
      • 2021-12-15
      相关资源
      最近更新 更多