如何获得鼠标经过的元素的顶部,左侧?

How to get top,left of the element which mouse went over on it?

我想获取文档中鼠标经过的元素的 top-left 位置,但奇怪的是它告诉我它的所有样式都没有设置。例如,如果您在 Whosebug 或此页面中尝试以下代码,它应该给我们 question-header 的位置,但它打印为空。

document.getElementById("question-header").addEventListener("mouseover",(e)=>{
console.log(e.target.style.top )
})

如下所示:

我该如何正确操作?

试试这个


document.getElementById("question-header").addEventListener("mouseover",function(event) {
  var x = event.clientX;
  var y = event.clientY;
 console.log(x,y);

})

这是jquery代码

$(document).mouseover(function(){
  var x = $("#question-header").position();
  console.log("Top: " + x.top + " Left: " + x.left);
});

希望对您有所帮助。

使用 vanilla js 你可以做类似的事情:

document.getElementById("question-header").addEventListener("mouseover",(e)=>{
  const element = e.target.getBoundingClientRect();
  const left = element.left;
  const top = element.top;
  const width = element.width;
  const height = element.height;

  console.log(`Left: ${left}, Top: ${top}, Width: ${width}, Height: ${height}`);
})

如果你需要得到所有的计算样式,你可以这样做:

document.getElementById("question-header").addEventListener("mouseover",(e)=>{
  const elementStyles = getComputedStyle(e.target);
  console.log(elementStyles);
})