fix pinch to zoom on touch devices
This commit is contained in:
Vendored
+7
-1
@@ -1257,8 +1257,14 @@
|
||||
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
|
||||
]);
|
||||
});
|
||||
}
|
||||
function collectObjectValuesForKey(key, converter, objects) {
|
||||
|
||||
@@ -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,
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user