更多的边缘案例,但仍然发生在我目前正在开发的应用程序中。 仅当存在滚动条并且相关元素通过 CSS 应用了翻译时,才会发生这种情况。
请参阅此处的示例(将鼠标悬停在红色框上)
这样的事情理论上可以解决这个问题(我认为)
let rect = el.getBoundingClientRect();
let left = rect.left + window.pageXOffset;
let top = rect.top + window.pageYOffset;
// now we have a more accurate representation of the current top / left coords
有趣的错误。 我可以确认它是由于转换而发生的,但我不明白_为什么_。 这应该得到解决,因为随着网络最近对动画的推动,这可能是一件很常见的事情。
嗯,很有意思。 至少我们现在知道,如果它再次出现,可以将人们指向这里。 感谢您进行研究@surma!
最有用的评论
直到!
根据CSS 规范,观察到的行为是正确的:
我们的工具提示使用
position: fixed
定位。 这意味着,通过应用变换(即使它是 NOP),您可以移动原点以进行固定定位。简单的解决方法是将工具提示移动到另一个容器(或
body
)。