From 77b15609b62c9bcd80fcdfd65f134a06252920b9 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期一, 14 四月 2025 17:11:21 +0800 Subject: [PATCH] 48px --- src/hooks/useDrag.ts | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/hooks/useDrag.ts b/src/hooks/useDrag.ts index 8074b76..84e1153 100644 --- a/src/hooks/useDrag.ts +++ b/src/hooks/useDrag.ts @@ -6,6 +6,8 @@ * 鎷栨嫿鎵嬫焺鍏冪礌鐨勯�夋嫨鍣� */ handle?: string | HTMLElement | Ref<HTMLElement>; + + startPos?: { x?: number; y?: number }; }; const getHandleElement = (handle: string | HTMLElement | Ref<HTMLElement>) => { @@ -21,10 +23,10 @@ }; export const useDrag = (options: UseDragOptions = {}) => { - const { handle } = options; + const { handle, startPos } = options; const isDragging = ref(false); - const startPos = ref({ x: 0, y: 0 }); - const offset = ref({ x: 0, y: 0 }); + const startPosRef = ref({ x: 0, y: 0 }); + const offset = ref({ x: startPos?.x ?? 0, y: startPos?.y ?? 0 }); const startDrag = (e: MouseEvent) => { // 濡傛灉璁剧疆浜唄andle,鍒欏垽鏂簨浠舵簮鏄惁鏄痟andle鍏冪礌鎴栧叾瀛愬厓绱� if (handle) { @@ -34,7 +36,7 @@ } } isDragging.value = true; - startPos.value = { + startPosRef.value = { x: e.clientX - offset.value.x, y: e.clientY - offset.value.y, }; @@ -43,8 +45,8 @@ if (!isDragging.value) return; offset.value = { - x: e.clientX - startPos.value.x, - y: e.clientY - startPos.value.y, + x: e.clientX - startPosRef.value.x, + y: e.clientY - startPosRef.value.y, }; }; -- Gitblit v1.9.3