diff options
author | vulonkaaz <7442677+vulonkaaz@users.noreply.github.com> | 2024-07-03 17:39:25 +0200 |
---|---|---|
committer | vulonkaaz <7442677+vulonkaaz@users.noreply.github.com> | 2024-07-03 17:39:25 +0200 |
commit | 0acbebdd2cb7dea1dbebd8cd4a3b90facaa3cf95 (patch) | |
tree | e91cb7846ef25b92ff77b1560e9fff20af45b3e0 | |
parent | 2fe3b4972f02be8b0c6143325d541ddda4b91559 (diff) |
touch support
-rw-r--r-- | views/partials/canvas.html | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/views/partials/canvas.html b/views/partials/canvas.html index 9b27667..5724225 100644 --- a/views/partials/canvas.html +++ b/views/partials/canvas.html @@ -15,17 +15,33 @@ let isDrawing = false; function startDrawing(event) { + event.preventDefault(); isDrawing = true; draw(event); } + function startDrawingTouch(event) { + event.preventDefault(); + isDrawing = true; + drawTouch(event); + } function draw(event) { + event.preventDefault(); if (!isDrawing) return; const x = event.clientX - canvas.offsetLeft + window.pageXOffset; const y = event.clientY - canvas.offsetTop + window.pageYOffset; ctx.lineTo(x, y); ctx.stroke(); } + function drawTouch(event) { + event.preventDefault(); + if (!isDrawing) return; + const x = event.touches[0].clientX - canvas.offsetLeft + window.pageXOffset; + const y = event.touches[0].clientY - canvas.offsetTop + window.pageYOffset; + ctx.lineTo(x, y); + ctx.stroke(); + } function stopDrawing() { + event.preventDefault(); isDrawing = false; ctx.beginPath(); } @@ -33,6 +49,10 @@ canvas.addEventListener("mousemove", draw); canvas.addEventListener("mouseup", stopDrawing); canvas.addEventListener("mouseout", stopDrawing); + canvas.addEventListener("touchstart", startDrawingTouch); + canvas.addEventListener("touchmove", drawTouch); + canvas.addEventListener("touchend", stopDrawing); + canvas.addEventListener("touchcancel", stopDrawing); function sendPic() { fetch("/api/post", { |