Как попасть вверху слева от элемента, на который наведена мышь? - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу получить верхнюю левую позицию элемента в документе, на который на него наведена мышь, но странным образом он говорит мне, что весь его стиль не был установлен. например, если вы попробуете код ниже в stackoverflow или на этой странице, он должен дать нам позицию заголовка вопроса, но он печатает пустой.

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

, как показано ниже:

enter image description here

Как мне сделать это правильно?

Ответы [ 3 ]

1 голос
/ 18 апреля 2020

с ванилью 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);
})
0 голосов
/ 18 апреля 2020

Вот код jquery

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

Надеюсь, это вам поможет.

0 голосов
/ 18 апреля 2020

попробуйте


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

})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...