2012-06-20 3 views
0

Я перемещаю мышь над div, и я хочу знать координаты мыши относительно начала div. (верхний левый угол)относительные координаты мыши в DIV - javascript

Я ожидал, что событие mousemove будет содержать относительные (клиентские) координаты мыши, но, по-видимому, это не так.

В светлячок, например, ни одно из свойств событий не содержат * относительные координаты

ли я что-то отсутствует?

* clientX, Y - pageX, Y - ScreenX, у

ответ

0

Ты ничего не хватает, но вам необходимо рассчитать относительные координаты самостоятельно.

Что-то вдоль этих линий должны это сделать (заменить JQuery с ж/д код, который вы хотите использовать, чтобы получить позицию):

var pos = $('div').position(); 
var relX = event.pageX - pos.left; 
var relY = event.pageY - pos.top; 

Также смотрите: JS: mouse coordinates relative to an element, которая охватывает некоторые подробности о поддержке других браузеров (хотя, если вы используете jquery, который может не понадобиться).

+0

Спасибо! Я попробую. Мне все еще любопытно. Правильно ли я полагаю, что координаты «клиента» должны быть, по отношению к элементу, генерирующему событие? –

+1

@johnsmith https://developer.mozilla.org/en/DOM/MouseEvent и особенно http://www.w3.org/TR/DOM-Level-3-Events/#events-MouseEvent-clientX – Phrogz

+0

Phrogz, спасибо , Ну, кажется, что стандарт не делает то, что я хотел бы сделать = P –

Смежные вопросы