Сделать холст невыбираемым

#html #canvas #selection

#HTML #холст #выделение

Вопрос:

У меня есть холст, на котором я рисую игру на JavaScript. Проблема в том, что когда игрок перемещает мышь, в половине случаев они в конечном итоге выбирают холст, который выглядит уродливо.

Я пытался поискать в Google и использовать некоторые CSS, такие как -webkit-user-select: none; и варианты, но, похоже, с canvas ничего не работает.

Комментарии:

1. Пожалуйста, приведите пример. Обычный элемент canvas не должен быть в состоянии быть выбран.

Ответ №1:

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

В ваших mousedown / mouseup / click обработчиках вы должны выполнить event.preventDefault() или return false .

Вы должны сделать то же самое в событиях клавиатуры, чтобы избежать столкновения с сочетаниями клавиш.

Ответ №2:

canvas.onselectstart = function () { return false; }