我的表中记录很少,当用户将鼠标悬停在某个记录上时,我需要显示一个弹出框。
我已经创建了弹出框并在那里设置了消息。唯一剩下的就是设置该框的坐标 ( <div id="popup"></div>
),使其位于触发该框的元素旁边。
所以我得到了this
我将鼠标悬停在标签上。现在我怎样才能获得它在窗口上的位置?
我试过this.offsetLeft
这是相对于 parent 的。该元素是内联的,所以我不知道如何找到它。
我使用纯 JavaScript,请不要建议使用 jQuery,因为我不想在这个项目中使用它。
最佳答案
var box = this.getBoundingClientRect();
alert( "y:" + box.top + "x:"+ box.left );
考虑滚动:
var body = document.body,
html = document.documentElement,
scrollTop = window.pageYOffset || html.scrollTop || body.scrollTop || 0,
scrollLeft = window.pageXOffset || html.scrollLeft || body.scrollLeft || 0,
box = this.getBoundingClientRect(),
top = box.top + scrollTop,
left = box.left + scrollLeft;
alert( "y:" + top + "x:"+ left );
关于JavaScript 查找内联元素的 X,Y 以在其旁边设置弹出框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854352/