reduce zoom transition time

This commit is contained in:
2026-04-02 11:54:41 -04:00
parent 9989b6bcb7
commit 7115836538
+5 -7
View File
@@ -9,7 +9,7 @@
let zoomLevel = $state(1.0); // Absolute scale (e.g. 0.1 to 3.0)
let isDragging = $state(false);
let isChangingZoom = $state(false); // New flag to disable animation during slider/click zoom
let isChangingZoom = $state(false); // New flag to enable animation during programmatic jumps
let startX = 0;
let startY = 0;
let translateX = $state(0);
@@ -58,13 +58,13 @@
translateY = 0;
lastTranslateX = 0;
lastTranslateY = 0;
setTimeout(() => { isChangingZoom = false; }, 250);
setTimeout(() => { isChangingZoom = false; }, 150);
}
function zoomTo(newScale: number) {
isChangingZoom = true;
zoomLevel = newScale;
setTimeout(() => { isChangingZoom = false; }, 250);
setTimeout(() => { isChangingZoom = false; }, 150);
}
function handleImageClick(e: MouseEvent) {
@@ -96,7 +96,7 @@
lastTranslateX = translateX;
lastTranslateY = translateY;
setTimeout(() => { isChangingZoom = false; }, 250);
setTimeout(() => { isChangingZoom = false; }, 150);
}
}
@@ -193,8 +193,6 @@
step="0.001"
bind:value={zoomLevel}
onclick={(e) => e.stopPropagation()}
onmousedown={() => { isChangingZoom = true; }}
onmouseup={() => { isChangingZoom = false; }}
oninput={() => {
if (zoomLevel <= baseScale + 0.001) {
translateX = 0;
@@ -402,6 +400,6 @@
}
.full-image.animate {
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
}
</style>