У меня есть элемент холста HTML и реализована кисть, которая захватывает события в элементе canvas mousedown
, mousemove
и mouseup
. Все это прекрасно подходит для рисования на холсте. Тем не менее, я не думаю, что мне нравится, как вы не можете продолжить рисование, если ваша мышь выйдет из холста среднего такта. Это просто отрубает. Это очень неумолимо для человека и, по моему мнению, не очень удобно.Как нарисовать вне элемента холста HTML?
Если вы открываете Microsoft Paint и начинаете рисовать с помощью кисти или эллипса или что-то в этом роде, пока вы начинаете на холсте, вы можете перетаскивать мышью в любом месте экрана и снова вводить холст где угодно. Это также облегчает, например, рисование четверть кругов в углах, потому что вы можете перетаскивать инструмент эллипса за пределы экрана. Я надеюсь в этом есть смысл.
В любом случае, мне было интересно, есть ли способ реализовать это с помощью холста HTML5 или как я буду заниматься реализацией такого рода вещей. Пользователь никогда не должен был бы видеть что-то нарисованное там; это в основном просто функция для удобства использования.
Редактировать: Проблема с множеством этих решений заключается в том, как обрабатывать координаты. В настоящее время мой холст находится посередине экрана, а верхний левый холст - (0, 0)
, а нижний правый - (500, 500)
. Должна рассматриваться и работа по переводу координат.
Edit2: Я узнал, что, по-видимому, вы можете легко снять границы холста. Например, вы можете указать отрицательную ширину, высоту и координаты, и элемент canvas справится с этим просто отлично. Таким образом, в основном решение, скорее всего, связано с захватом документа mousemove
и mouseup
и просто переводом x
и y
для начала в верхнем левом углу холста.
Не могли бы вы захватить мышь события в самом окне, а затем передать на холст? – zero298
Возможно, попробуйте опубликовать пример того, что у вас есть. Легче помочь, если нам не нужно сначала воссоздать собственный «сломанный» пример. – duncanhall
Возможно, вы также можете сделать элемент холста по всей ширине и высоте окна, а область рисования несколько меньше в холсте? –