Обработка события OnClick для canvas в javascript и получение его координат - PullRequest
14 голосов
/ 10 июня 2011

У меня есть холст для рисования таким образом

<div id="canvas" style="position:relative;width:600px;height:300px;" onclick="q()"></div>

Мне нужно обработать событие при нажатии на него и получить координаты на холсте, где он был нажат

Ответы [ 3 ]

10 голосов
/ 10 июня 2011

Вам нужно получить координаты страницы x и y, а затем минус смещение canvas, чтобы получить их относительно canvas.

function q(event) {
    event = event || window.event;

    var canvas = document.getElementById('canvas'),
        x = event.pageX - canvas.offsetLeft,
        y = event.pageY - canvas.offsetTop;

    alert(x + ' ' + y);
}

jsFiddle .

Вам следует рассмотреть возможность незаметного присоединения событий, то есть , а не с использованием атрибута onclick HTML.

2 голосов
/ 20 мая 2015

Начиная с HTML5, просто получите атрибуты layerX и layerY самого события.Nice!

2 голосов
/ 10 июня 2011

Используя jQuery, вы можете просто читать атрибуты .pageX и .pageY напрямую.

http://docs.jquery.com/Tutorials:Mouse_Position#Where_did_they_click_that_div.3F

...