Javascript: получить положение мыши относительно родительского элемента - PullRequest
8 голосов
/ 10 апреля 2010

Есть ли способ получить положение мыши относительно родительского элемента?

Допустим, у меня есть структура:

<div id="parent">
    <span class="dot"></span>
</div>

Когда я наведу указатель мыши на элемент span, мне нужно узнать его положение относительно родительского элемента (<div id="parent">). PageX / ClientX дают мне позицию относительно страницы / клиентской области, поэтому она не работает для меня.

Ответы [ 3 ]

12 голосов
/ 10 апреля 2010

Вычтите положение родительского элемента (offsetLeft; offsetTop) из позиции мыши (pageX; pageY), чтобы получить относительную позицию. Не забудьте учесть offsetParent, если у вас есть несколько уровней смещений.

Например:

element.addEventListener("mousedown", function (e) {
  let x = e.pageX - parent.offsetLeft;
  let y = e.pageY - parent.offsetTop;

  console.log(x, y);
});

Где element - ваш внутренний элемент, принимающий событие, а parent - желаемая ссылка на координаты.

5 голосов
/ 03 июля 2012

jquery offset () метод обрабатывает родительское позиционирование, поэтому

function onsomemouseevent(e) {
    var x = e.pageX - $(e.target).offset().left;
}

- простой jQuery для браузера.

0 голосов
/ 10 апреля 2010

Попробуйте свойство offsetParent. http://help.dottoro.com/ljetdvkl.php

Попробуйте это: positionX = document.getElementByID ('childId'). offsetParent.offsetLeft; positionY = document.getElementByID ('childId'). offsetParent.offsetLeft;

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