我的目标是将一个下拉列表放入一个单元格中。
var obj = document.getElementById('dropdown');
var coords = { x: 0, y: 0 };
var element = this;
while (element)
{
coords.x += element.offsetLeft;
coords.y += element.offsetTop;
element = element.offsetParent;
}
obj.style.left = coords.x+'px';
obj.style.top = coords.y+'px';
然而,这无法找到准确的位置。如何解决?
答案 0 :(得分:1)
这种方法应该可以完美地运作,或许还有其他东西搞乱定位?
如果您有一个样式为position: relative
的元素,那么添加到样式position: absolute
的元素的元素仍然相对于该元素。如果您只是通过查看偏移然后向上走(而忽略任何相对定位的元素)来尝试确定元素的位置,那么您将无法获得正确的值。您应找到具有相对定位的最近公共元素,并获得该元素的偏移量。