我有一个自定义控件,需要在其“主”控件主体(DIV 元素)正下方呈现一个弹出窗口。我遇到的问题是如何设置弹出坐标位置,如果控件没有其容器设置的“知识”。
例如,以这部分代码为例:
// library call to extract document-based coordinates (returns object with X and Y fields) of the "controlBodyElement" (a DIV)
var pt = some.library.getDocumentPosition(controlBodyElement)
// frame (the "popup") is a DIV pointer
frame.style.position = "absolute"
frame.style.top = pt.y + controlBodyElement.clientHeight + 1 + "px" // Line "A"
// frame.style.top = "0px" // Line "B" -- finds the relativity point of absolute-position
行“A” - 使弹出窗口呈现在 controlBodyElement 下方。
行“B” - 将弹出窗口呈现在 controlBodyElement 上方。
问:应该在 DOM 树中搜索什么元素设置/属性来确定某个绝对定位的子元素相对于哪个元素锚定?
更新:我想如果有人可以向我解释什么页面机制会导致绝对定位的元素(使用 top = 0px)在页面的中间(而不是顶部)呈现,那么我可以编写逻辑来解决问题;我只是不确定我需要寻找...