fix pinch to zoom on touch devices

This commit is contained in:
marlon-erler
2026-09-24 15:57:25 +02:00
parent ab4930497d
commit 8c699575cf
2 changed files with 14 additions and 2 deletions
+7 -1
View File
@@ -361,8 +361,14 @@ export function implementPinchZoom(canvas: HTMLElement) {
if (event.touches.length < 2) return;
event.preventDefault();
const currentDistance = distance(event);
const midX = midpoint(event, "x");
const midY = midpoint(event, "y");
const ratio = currentDistance / initialDistance;
apply(initialZoom * ratio);
const difference = currentDistance - initialDistance;
apply(initialZoom * ratio, [
initialX + (midX - difference - initialTouchX) / initialZoom / 2,
initialY + (midY - difference - initialTouchY) / initialZoom / 2,
]);
});
}