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 {