← Все вопросы

Как сделать простую рисовалку на canvas — рисовать мышкой по странице?

Задан 20 месяцев назад448 просмотров1 ответ
6

Хочу сделать первый «вау-проект» — чтобы можно было рисовать мышкой прямо на странице, как в Paint, только простенько. Видел слово canvas, но совсем не понимаю, как ловить движение мыши и рисовать линию там, где она едет. С чего начать?

1 ответ

10
✓ Принятый ответ — помог автору

Рисовалка строится на трёх событиях мыши: нажал (mousedown) — начали рисовать, двигаешь (mousemove) — рисуем линию, отпустил (mouseup) — перестали. Вот минимальная рабочая версия:

<canvas id="c" width="500" height="400" style="border:1px solid #000"></canvas>

<script>
const canvas = document.getElementById('c');
const ctx = canvas.getContext('2d');
let drawing = false;

canvas.addEventListener('mousedown', () => { drawing = true; ctx.beginPath(); });
canvas.addEventListener('mouseup',   () => { drawing = false; });
canvas.addEventListener('mousemove', (e) => {
  if (!drawing) return;
  ctx.lineTo(e.offsetX, e.offsetY);
  ctx.stroke();
});
</script>

Логика: пока кнопка зажата (drawing === true), на каждое движение мыши тянем линию к новой точке (e.offsetX, e.offsetY) и рисуем stroke(). getContext('2d') — это «кисть», которой ты рисуешь по canvas.

Когда заработает — добавь выбор цвета (ctx.strokeStyle) и толщину (ctx.lineWidth), а потом кнопку «очистить» через ctx.clearRect.

Ваш ответ

, чтобы ответить на вопрос.