修复拖动位置

This commit is contained in:
2025-12-03 09:04:14 +08:00
parent 7c09392caa
commit 1cadc2be1d
+9 -1
View File
@@ -20,6 +20,8 @@ const startX = ref(0);
const startY = ref(0); const startY = ref(0);
const lastX = ref(0); const lastX = ref(0);
const lastY = ref(0); const lastY = ref(0);
const dragOffsetX = ref(0);
const dragOffsetY = ref(0);
const dragStarted = ref(false); const dragStarted = ref(false);
const dragContainer = ref<HTMLElement | null>(null); const dragContainer = ref<HTMLElement | null>(null);
const cachedTokenRects = ref<{ const cachedTokenRects = ref<{
@@ -580,6 +582,12 @@ function onPointerDown(index: number, e: PointerEvent) {
startY.value = e.clientY; startY.value = e.clientY;
lastX.value = e.clientX; lastX.value = e.clientX;
lastY.value = e.clientY; lastY.value = e.clientY;
const target = e.currentTarget as HTMLElement;
const rect = target.getBoundingClientRect();
dragOffsetX.value = e.clientX - rect.left;
dragOffsetY.value = e.clientY - rect.top;
dragStarted.value = false; dragStarted.value = false;
isDragging.value = false; isDragging.value = false;
insertSide.value = null; insertSide.value = null;
@@ -699,7 +707,7 @@ function createPointerPreview(index: number) {
function positionPreview(x: number, y: number) { function positionPreview(x: number, y: number) {
if (!dragPreview.value) return; if (!dragPreview.value) return;
dragPreview.value.style.transform = `translate(${x + 12}px, ${y + 12}px)`; dragPreview.value.style.transform = `translate(${x - dragOffsetX.value}px, ${y - dragOffsetY.value}px)`;
} }
function updateOverIndexAndSideFast(clientX: number, clientY: number) { function updateOverIndexAndSideFast(clientX: number, clientY: number) {