【问题标题】:Get position off all divs [duplicate]从所有div中获取位置[重复]
【发布时间】:2014-03-12 10:27:13
【问题描述】:

我想使用 javascript 获取 iframe 中所有 div 的位置(屏幕坐标)。没有 jQuery。

我可以像这样获取数组中的所有 div:

var arr = window.frames[0].document.getElementsByTagName("div");

然后我尝试做:

var arr = window.frames[0].document.getElementsByTagName("div").x;

但它没有用。控制台日志未定义。有什么想法吗?

【问题讨论】:

    标签: javascript html position


    【解决方案1】:

    试试这个:

    var divs = window.frames[0].document.getElementsByTagName("div")
        i = 0, rects = [];
    for (; i < divs.length; i++)
        rects.push(divs[i].getBoundingClientRect());
    

    现在数组 rects 包含定义所有 div 的相对于视口的位置的对象。每个元素都是这样的:

    {
        top: ...,
        right: ...,
        bottom: ...,
        left: ...,
        width: ...,
        height: ...
    }
    

    这些属性是每个边框的像素数(或宽度或高度)。

    虽然 IE6-8 不报告 widthheight 属性,但计算它们很容易。

    【讨论】:

      【解决方案2】:

      getElementsByTagName 返回一个数组。数组对象没有x 属性。

      您需要遍历成员,收集x 的每个值。

      此外(如下面的 cmets 所指出的),div 没有 x 属性。看 问题“Retrieve the position (X,Y) of an HTML element”了解如何管理它的详细信息。

      【讨论】:

      • 每个 div 也不会有 x 属性。
      • 有什么方法可以在不使用 jQuery .each 的情况下做到这一点。使用循环什么的?
      • 这个词是偏移的......上面的答案不是一个答案。它是一个评论
      • @MattSach 是的。我会相应地进行编辑。
      猜你喜欢
      • 2020-12-09
      • 2019-04-07
      • 2013-01-17
      • 2017-06-28
      • 1970-01-01
      • 2023-03-23
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多