JQuery положение мыши на холсте, и живой элемент в DOM? - PullRequest
2 голосов
/ 16 октября 2011

Моя проблема в том, что у меня есть холст с цветовым спектром, и при нажатии он назначает цвет, щелкаемый по различным частям страницы.Когда пользователь нажимает на холст, я получаю позицию следующим образом.

$('#colorPicker').click(function(e) {
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var canvas1 = colorPicker.getContext('2d');
var data = canvas1.getImageData(x, y, 1, 1).data;
var rgb = 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')';
$('a').css({color: rgb});
}).disableSelection();

Единственная проблема заключается в том, что мой холст находится в аккордеоне jquery, поэтому позиция холста изменяется при изменении аккордеона, делая мои координаты дляобработчик щелчков прикреплен к холсту довольно много.

Я пытался добавить прямое событие к щелчку, но это ничего не изменило, как я могу получить правильные координаты для указателя в пределах холста, есть ли живой способ получения значений x и y ??

1 Ответ

4 голосов
/ 16 октября 2011

Чтобы получить позицию щелчка относительно <canvas> (при условии #colorPicker это <canvas>):

var x = e.offsetX,
    y = e.offsetY;
...