From 74096b2b1e5ea372b1389b35afaa025a929a5201 Mon Sep 17 00:00:00 2001 From: zhenyuWang <13641039885@163.com> Date: Tue, 28 Jun 2022 22:16:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=20touch=20mouse=20?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=90=8C=E6=97=B6=E7=BB=91=E5=AE=9A=E5=8F=8A?= =?UTF-8?q?navigator=20a=20=E6=A0=87=E7=AD=BE=E9=98=BB=E6=AD=A2=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/uni-components/src/helpers/useHover.ts | 15 +++++++++++---- .../uni-components/src/vue/navigator/index.tsx | 7 ++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/uni-components/src/helpers/useHover.ts b/packages/uni-components/src/helpers/useHover.ts index e53026485..f4adf00e9 100644 --- a/packages/uni-components/src/helpers/useHover.ts +++ b/packages/uni-components/src/helpers/useHover.ts @@ -45,16 +45,19 @@ export function useHover(props: UseHoverOptions) { if (evt.touches.length > 1) { return } - handleHover(evt) + handleHoverStart(evt) } function onMousedown(evt: MouseEvent) { - evt.preventDefault() - handleHover(evt) + if (hoverTouch) { + return + } + + handleHoverStart(evt) window.addEventListener('mouseup', handlePCHoverEnd) } - function handleHover(evt: TouchEvent | MouseEvent) { + function handleHoverStart(evt: TouchEvent | MouseEvent) { // TODO detect scrolling if ((evt as any)._hoverPropagationStopped) { return @@ -80,6 +83,10 @@ export function useHover(props: UseHoverOptions) { } function onMouseup() { + if (!hoverTouch) { + return + } + handlePCHoverEnd() } diff --git a/packages/uni-components/src/vue/navigator/index.tsx b/packages/uni-components/src/vue/navigator/index.tsx index 4342376e6..148684f44 100644 --- a/packages/uni-components/src/vue/navigator/index.tsx +++ b/packages/uni-components/src/vue/navigator/index.tsx @@ -27,7 +27,12 @@ export default /*#__PURE__*/ defineBuiltInComponent({ const hasHoverClass = props.hoverClass && props.hoverClass !== 'none' return ( - +