У меня есть div с множеством объектов SVG в нем.Как получить текущую позицию мыши при перемещении по объекту SVG?
<div id="outerDiv">
<div id="widget1">
<object type="image/svg+xml" data="my.svg"></object>
</div>
<div id="widget2">
<object type="image/svg+xml" data="my.svg"></object>
</div>
<div id="widget3">
<object type="image/svg+xml" data="my.svg"></object>
</div>
...
</div>
Как я могу получить текущее положение мыши, когда курсор находится над одним из этих объектов svg?
Sidenote: без extern libs, таких как D3, Snap ... только jQuery разрешено.
Это не работает, потому что Я не получаю никакого события mousemove, когда я перемещаюсь по объекту SVG.
var mousemoveHandler = function (event) {
event.preventDefault();
console.log("doc.mousemove: " + event.pageX + " " + event.pageY);
};
$(document).on("mousemove", mousemoveHandler);
Кроме того, обработчик MouseMove на SVG элемента (например, невидимым г-элемент) возвращает только относительное mouseposition.
Редактировать: Объекты svg не имеют обработчиков событий, которые могут остановить распространение события.
event.clientX; event.clientY? –
Проблема в том, что я не получаю никакого события, когда я перемещаюсь по SVG ... так что клиент и клиент тоже не работают. – Frank
Сделайте SVG образ, если вы хотите обработать мышь за ее пределами (т. Е. В родительском документе). В противном случае обработайте мышь внутри самого документа SVG. –