使用 Javascript 制作一个绝对定位的悬停元素以使高度随内容变化的一种便捷方法是将宽度、顶部和左侧指定为样式字段。例如:
popup.style.width = foo.offsetWidth - 10 + 'px';
popup.style.top = document.getElementById(bar)
.getBoundingClientRect().top + 'px'; // for IE7, can't use offsetTop
popup.style.left = '15px';
如何调整此代码以根据其中心而不是顶部来绝对定位弹出窗口?我想做popup.style.center
而不是popup.style.top
,但这不是 CSS 的工作方式。一个完全天真的解决方案是将它添加到 DOM,然后测量它的高度,然后从顶部减去一半的高度。
或者,是否有一种完全不同的方法仍然允许为元素的每个角设置任意位置?
我正在寻找一个纯 Javascript 解决方案(例如没有 jquery)。
重要提示:我不想将弹出窗口居中在另一个元素中。相反,我希望将弹出窗口的中心点指定为距屏幕顶部的像素偏移量。此像素偏移量可能基于另一个元素,也可能是原始数字。