From 145c962038c8861c6942c0dd0616c0d0c783c728 Mon Sep 17 00:00:00 2001
From: songchenglin3 <353833373@qq.com>
Date: Wed, 5 Mar 2025 17:43:52 +0800
Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3taro-h5=E4=B8=8D?=
=?UTF-8?q?=E8=83=BD=E6=BB=91=E5=8A=A8=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/nutui-taro-demo/src/app.scss | 4 ++
src/packages/drag/demos/taro/demo2.tsx | 2 -
src/packages/drag/demos/taro/demo3.tsx | 1 -
src/packages/drag/demos/taro/demo4.tsx | 13 +++--
src/packages/drag/drag.scss | 1 +
src/packages/drag/drag.taro.tsx | 67 ++++++++++++--------------
6 files changed, 46 insertions(+), 42 deletions(-)
diff --git a/packages/nutui-taro-demo/src/app.scss b/packages/nutui-taro-demo/src/app.scss
index c04c1d7083..63400f903c 100644
--- a/packages/nutui-taro-demo/src/app.scss
+++ b/packages/nutui-taro-demo/src/app.scss
@@ -26,6 +26,10 @@ body {
&.full {
padding: 57px 0 0 0;
+ min-height: 100vh;
+ .jd-scroll-view {
+ min-height: calc(100vh - 57px);
+ }
.h2 {
padding-left: 17px;
diff --git a/src/packages/drag/demos/taro/demo2.tsx b/src/packages/drag/demos/taro/demo2.tsx
index f46256820a..959b2f3ccd 100644
--- a/src/packages/drag/demos/taro/demo2.tsx
+++ b/src/packages/drag/demos/taro/demo2.tsx
@@ -10,7 +10,6 @@ const Demo2 = () => {
top: '200px',
left: '8px',
}}
- className="drag-demo21"
>
@@ -20,7 +19,6 @@ const Demo2 = () => {
top: '200px',
right: '50px',
}}
- className="drag-demo22"
>
diff --git a/src/packages/drag/demos/taro/demo3.tsx b/src/packages/drag/demos/taro/demo3.tsx
index 87be2fbfa4..1beaf5a852 100644
--- a/src/packages/drag/demos/taro/demo3.tsx
+++ b/src/packages/drag/demos/taro/demo3.tsx
@@ -10,7 +10,6 @@ const Demo3 = () => {
top: '275px',
left: '0px',
}}
- className="drag-demo3"
>
diff --git a/src/packages/drag/demos/taro/demo4.tsx b/src/packages/drag/demos/taro/demo4.tsx
index 3132a83f38..f77b8243f4 100644
--- a/src/packages/drag/demos/taro/demo4.tsx
+++ b/src/packages/drag/demos/taro/demo4.tsx
@@ -11,24 +11,29 @@ const Demo4 = () => {
return screenWidth - 300 - 9
}
const bottom = () => {
- return windowHeight - 501 - 57
+ return windowHeight - 559
}
return (
<>
diff --git a/src/packages/drag/drag.scss b/src/packages/drag/drag.scss
index ec167762d3..681be86960 100644
--- a/src/packages/drag/drag.scss
+++ b/src/packages/drag/drag.scss
@@ -10,5 +10,6 @@
display: inline-flex;
width: fit-content;
height: fit-content;
+ touch-action: none;
}
}
diff --git a/src/packages/drag/drag.taro.tsx b/src/packages/drag/drag.taro.tsx
index c065f45953..7e9a388e1a 100644
--- a/src/packages/drag/drag.taro.tsx
+++ b/src/packages/drag/drag.taro.tsx
@@ -1,9 +1,9 @@
import React, { FunctionComponent, useState, useEffect, useRef } from 'react'
-import { createSelectorQuery } from '@tarojs/taro'
-import { getWindowInfo } from '@/utils/get-system-info'
+import { View } from '@tarojs/components'
import { BasicComponent, ComponentDefaults } from '@/utils/typings'
import { getRectByTaro } from '@/utils/get-rect-by-taro'
import { DragState } from './drag'
+import { getWindowInfo } from '@/utils/get-system-info'
export interface DragProps extends BasicComponent {
attract: boolean
@@ -43,7 +43,6 @@ export const Drag: FunctionComponent<
children,
className,
style,
- ...reset
} = {
...defaultProps,
...props,
@@ -67,22 +66,22 @@ export const Drag: FunctionComponent<
const { top, left, bottom, right } = boundary
const { screenWidth, windowHeight } = getWindowInfo()
- const { width, height } = await getRectByTaro(dragRef.current)
- dragRef.current?.getBoundingClientRect()
- createSelectorQuery()
- .select(`.${className}`)
- .boundingClientRect((rec: any) => {
- setBoundaryState({
- top: -rec.top + top,
- left: -rec.left + left,
- bottom: windowHeight - rec.top - bottom - Math.ceil(height),
- right: screenWidth - rec.left - right - Math.ceil(width),
- })
+ const {
+ width,
+ height,
+ top: dragTop,
+ left: dragLeft,
+ } = await getRectByTaro(dragRef.current)
+
+ setBoundaryState({
+ top: -dragTop + top,
+ left: -dragLeft + left,
+ bottom: windowHeight - dragTop - bottom - Math.ceil(height),
+ right: screenWidth - dragLeft - right - Math.ceil(width),
+ })
- middleLine.current =
- screenWidth - rec.width - rec.left - (screenWidth - rec.width) / 2
- })
- .exec()
+ middleLine.current =
+ screenWidth - width - dragLeft - (screenWidth - width) / 2
}
}
@@ -123,7 +122,7 @@ export const Drag: FunctionComponent<
}
}
- const touchEnd = (e: React.TouchEvent) => {
+ const touchEnd = () => {
onDragEnd?.({
offset: [translateX.current, translateY.current],
})
@@ -141,34 +140,32 @@ export const Drag: FunctionComponent<
}
useEffect(() => {
- timer.current = window.setTimeout(() => {
- getInfo()
- }, 300)
-
+ if (dragRef.current) {
+ timer.current = window.setTimeout(() => {
+ getInfo()
+ }, 300)
+ }
return () => {
clearTimeout(timer.current)
}
- }, [])
+ }, [dragRef.current])
return (
-
-
+ touchStart(event)}
ref={dragRef}
+ catchMove
+ // @ts-ignore
+ onTouchStart={touchStart}
+ // @ts-ignore
onTouchMove={touchMove}
onTouchEnd={touchEnd}
- // eslint-disable-next-line react/no-unknown-property
style={currstyle}
>
{children}
-
-
+
+
)
}
From 327998e03d67f9a1df8f8325308df4d8fb0b4f36 Mon Sep 17 00:00:00 2001
From: songchenglin3 <353833373@qq.com>
Date: Wed, 5 Mar 2025 18:02:45 +0800
Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E4=BA=AC=E4=B8=9C?=
=?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=AC=AC=E4=B8=80=E4=B8=AA=E7=82=B9?=
=?UTF-8?q?=E5=87=BB=E7=9A=84demo=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/packages/drag/drag.taro.tsx | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/packages/drag/drag.taro.tsx b/src/packages/drag/drag.taro.tsx
index 7e9a388e1a..5afc02d232 100644
--- a/src/packages/drag/drag.taro.tsx
+++ b/src/packages/drag/drag.taro.tsx
@@ -4,6 +4,7 @@ import { BasicComponent, ComponentDefaults } from '@/utils/typings'
import { getRectByTaro } from '@/utils/get-rect-by-taro'
import { DragState } from './drag'
import { getWindowInfo } from '@/utils/get-system-info'
+import { web } from '@/utils/platform-taro'
export interface DragProps extends BasicComponent {
attract: boolean
@@ -141,9 +142,13 @@ export const Drag: FunctionComponent<
useEffect(() => {
if (dragRef.current) {
- timer.current = window.setTimeout(() => {
+ if (web()) {
+ timer.current = window.setTimeout(() => {
+ getInfo()
+ }, 300)
+ } else {
getInfo()
- }, 300)
+ }
}
return () => {
clearTimeout(timer.current)
From 489c4af9220f338b35a625fca00c77eb9de34b43 Mon Sep 17 00:00:00 2001
From: songchenglin3 <353833373@qq.com>
Date: Wed, 5 Mar 2025 18:34:30 +0800
Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=A0=B7=E5=BC=8F=E8=BF=81=E7=A7=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/nutui-taro-demo/src/app.scss | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/nutui-taro-demo/src/app.scss b/packages/nutui-taro-demo/src/app.scss
index f6902e345f..c2587f4da0 100644
--- a/packages/nutui-taro-demo/src/app.scss
+++ b/packages/nutui-taro-demo/src/app.scss
@@ -26,10 +26,6 @@ body {
&.full {
padding: 0 0 0 0;
- min-height: 100vh;
- .jd-scroll-view {
- min-height: calc(100vh - 57px);
- }
.h2 {
padding-left: 17px;
}
@@ -37,6 +33,10 @@ body {
&.drag-full {
padding: 57px 0 0 0;
+ min-height: 100vh;
+ .jd-scroll-view {
+ min-height: calc(100vh - 57px);
+ }
}
&-full {