JavaScript获取div的绝对位置

用户名

我在运行时使用javascript创建了一个div(oCell)。

然后,我想相对于该div定位另一个独立的div(随机div)。由于程序内的原因,random-div必须绝对定位,而oCell相对定位。oCell div在表中相对放置。

我的问题是我需要找到oCell div的绝对位置,而不是相对位置。

到目前为止,我有:

var oCell = document.createElement("td");
var height = oCell.getBoundingClientRect().top;
var right = oCell.getBoundingClientRect().right;
oCell.oBoxPositionTop = height;
oCell.oBoxPositionSide = right; 

但是据我所知,这是返回oCell div的相对高度,而这又没有将random-div定位在正确的位置。

帕特里克

getBoundingClientRect以视口坐标(或相对于浏览器窗口中显示的可见内容的坐标)给出坐标。绝对定位时,您需要文档坐标。要将视口坐标转换为文档坐标,请将页面的滚动偏移量添加到getBoundingClientRect返回的左侧和顶部值:

//technique used in JavaScript: Definitive Guide
var scrollOffsets = (function () {
    var w = window;

    // This works for all browsers except IE versions 8 and before
    if (w.pageXOffset != null) return {x: w.pageXOffset, y:w.pageYOffset};
    // For IE (or any browser) in Standards mode
    var d = w.document;
    if (document.compatMode == "CSS1Compat")
    return {x:d.documentElement.scrollLeft, y:d.documentElement.scrollTop};
    // For browsers in Quirks mode
    return { x: d.body.scrollLeft, y: d.body.scrollTop };
}());

//Your code:
var oCell = document.createElement("td");
//changed from height to top and gets document coordinates of position
var top = oCell.getBoundingClientRect().top + scrollOffsets.y;
//changed from right to left
var left = oCell.getBoundingClientRect().left + scrollOffsets.x;
oCell.oBoxPositionTop = top;
oCell.oBoxPositionSide = left;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

居中div绝对位置?

来自分类Dev

获取节点CSS在JavaScript中的绝对位置

来自分类Dev

Javascript:如何跟踪 div 的绝对位置(顶部/左侧)?

来自分类Dev

绝对位置的div与相对位置的div不重叠

来自分类Dev

在绝对位置的div中滚动div

来自分类Dev

QGraphicsItem移动事件-获取绝对位置

来自分类Dev

QGraphicsItem移动事件-获取绝对位置

来自分类Dev

如何获取触摸事件的绝对位置?

来自分类Dev

HTML:了解居中的Div的绝对位置

来自分类Dev

在绝对位置的div中截断文本

来自分类Dev

需要居中div绝对位置

来自分类Dev

HTML:了解居中的Div的绝对位置

来自分类Dev

浮动元素被绝对位置div裁剪

来自分类Dev

单击旁边的绝对位置弹出 div

来自分类Dev

CSS:相对位置在相对位置div中的绝对位置

来自分类Dev

具有绝对位置的Div位置不相等

来自分类Dev

位置底部紧挨着 2 div 的绝对位置

来自分类Dev

绝对位置:负值

来自分类Dev

绝对位置崩溃

来自分类Dev

div的绝对位置,但不与上面的div重叠

来自分类Dev

CSS:绝对位置div高于父div

来自分类Dev

使用flexbox在div内居中div并使用绝对位置

来自分类Dev

div的绝对位置,但不与上面的div重叠

来自分类Dev

在所有div上方显示div(绝对位置)

来自分类Dev

垂直和水平在div中居中div,绝对位置

来自分类Dev

Flash:获取e.currentTarget的绝对位置

来自分类Dev

从iframe内部获取鼠标的绝对位置

来自分类Dev

如何从具有绝对位置的元素获取marginLeft?

来自分类Dev

子div的绝对位置不是相对于父