fix(web): в зуме стрелки панорамируют фото

Стрелки влево/вправо переключают фото только без зума; в зуме они двигают
изображение, как и перетаскивание мышью.
This commit is contained in:
iu
2026-10-21 00:34:15 +03:00
parent 500ec10d7f
commit b2a509fc38
+27 -3
View File
@@ -539,15 +539,39 @@
return;
}
if (zoomed) {
// В зуме стрелки переключают фото, а панорамирование — мышью.
if (ev.key === 'ArrowLeft') prev();
else if (ev.key === 'ArrowRight') next();
// В зуме стрелки панорамируют фото, а не переключают его.
panByKey(ev);
return;
}
if (ev.key === 'ArrowLeft') prev();
else if (ev.key === 'ArrowRight') next();
}
/** Панорамирование зума стрелками. */
function panByKey(ev: KeyboardEvent) {
const el = scroller;
if (!el) return;
const step = Math.max(60, Math.round(el.clientWidth / 8));
switch (ev.key) {
case 'ArrowLeft':
el.scrollLeft -= step;
break;
case 'ArrowRight':
el.scrollLeft += step;
break;
case 'ArrowUp':
el.scrollTop -= step;
break;
case 'ArrowDown':
el.scrollTop += step;
break;
default:
return;
}
ev.preventDefault();
scheduleViewport();
}
function onTouchStart(ev: TouchEvent) {
touchX = ev.changedTouches[0].clientX;
}