HTML5 кликабельный элемент canvas? - PullRequest
0 голосов
/ 12 сентября 2011

Я создаю круг на холсте.Можно ли сделать мой круг кликабельным?

function createCircle(context, x, y, radius, color) {
   context.beginPath();
   context.fillStyle = color;
   context.arc(x, y, radius, 0, Math.PI * 2, true);
   context.closePath();
   context.fill();
}

Ответы [ 3 ]

2 голосов
/ 12 сентября 2011

Я не эксперт, но я думаю, что вы должны зафиксировать событие click на canvas, а затем написать function, который проверяет, находится ли точка нажатия внутри радиуса круга. (т. е. разница между выбранной точкой и началом круга меньше или равна радиусу).

0 голосов
/ 21 марта 2013

Вы можете добавить событие mousedown на свой холст или просто можете добавить прослушиватель событий как

canvas.addEventListener('mousedown', function(evt) 
{
    var mousePos = getMousePos(canvas, evt);
    var message = 'Mouse position: ' + mousePos.x + ',' + mousePos.y;
        //Here ur getting mouse position x and y coordinates. 
  },
 false);
0 голосов
/ 12 сентября 2011

Конечно, вы можете.Если вы хотите поменять курсор на руку (как это делается для ссылок), вы можете сделать это тоже.Просто добавьте событие onmousemove на свой холст, и если расстояние мыши от центра (возможно, вам придется использовать Пифагор) меньше радиуса, измените CSS-свойство холста курсора на указатель.Иначе, конечно, вернуть свойство CSS по умолчанию.Точно так же добавьте событие onclick и определите, когда на него нажимают, и сделайте свое дело, когда это правда.Поэтому у вас на холсте есть кликабельный круг.

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