@@ -51,29 +51,28 @@ export default defineComponent({
51
51
};
52
52
const startX = ref <number >(0 );
53
53
const startY = ref <number >(0 );
54
- const startUpdatePos = ref (false );
54
+ const startedDrag = ref (false );
55
55
const transformX = ref (0 );
56
56
const transformY = ref (0 );
57
57
const preTransformX = ref (0 );
58
58
const preTransformY = ref (0 );
59
- let timeoutId;
59
+ watch ([x , y ], () => {
60
+ if (! startedDrag .value ) {
61
+ startX .value = x .value ;
62
+ startY .value = y .value ;
63
+ preTransformX .value = transformX .value ;
64
+ preTransformY .value = transformY .value ;
65
+ }
66
+ startedDrag .value = true ;
67
+ });
60
68
watch (isDragging , () => {
61
- clearTimeout (timeoutId );
62
- timeoutId = setTimeout (() => {
63
- if (isDragging .value ) {
64
- startX .value = x .value ;
65
- startY .value = y .value ;
66
- preTransformX .value = transformX .value ;
67
- preTransformY .value = transformY .value ;
68
- startUpdatePos .value = true ;
69
- } else {
70
- startUpdatePos .value = false ;
71
- }
72
- }, 50 );
69
+ if (! isDragging ) {
70
+ startedDrag .value = false ;
71
+ }
73
72
});
74
73
75
74
watchEffect (() => {
76
- if (startUpdatePos .value ) {
75
+ if (startedDrag .value ) {
77
76
transformX .value = preTransformX .value + x .value - startX .value ;
78
77
transformY .value = preTransformY .value + y .value - startY .value ;
79
78
}
0 commit comments