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