From 5ba8168ff55f13b183d1ccb2878773c695fb5cac Mon Sep 17 00:00:00 2001 From: weishenai <59504283+weishenai@users.noreply.github.com> Date: Mon, 6 Nov 2023 10:00:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Dtooltip,menu=20=E5=9C=A8s?= =?UTF-8?q?hadowDOM=E4=B8=8B=E5=87=BA=E7=8E=B0=E4=BD=8D=E7=BD=AE=E5=81=8F?= =?UTF-8?q?=E7=A7=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/menu/src/hooks.ts | 5 +++-- packages/tools/dom.ts | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/menu/src/hooks.ts b/packages/menu/src/hooks.ts index 52146c3ee9..3152a61fc6 100644 --- a/packages/menu/src/hooks.ts +++ b/packages/menu/src/hooks.ts @@ -38,8 +38,9 @@ const tableMenuHook: VxeGlobalHooksHandles.HookOptions = { evnt.preventDefault() $xetable.updateZindex() const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode() - let top = evnt.clientY + scrollTop - let left = evnt.clientX + scrollLeft + const bodyRect = document.body.getBoundingClientRect() + let top = evnt.clientY + scrollTop - bodyRect.top + let left = evnt.clientX + scrollLeft - bodyRect.left const handleVisible = () => { internalData._currMenuParams = params Object.assign(ctxMenuStore, { diff --git a/packages/tools/dom.ts b/packages/tools/dom.ts index 6631a3cdee..ac829cae71 100644 --- a/packages/tools/dom.ts +++ b/packages/tools/dom.ts @@ -133,8 +133,9 @@ export function getOffsetPos (elem: any, container: any) { export function getAbsolutePos (elem: any) { const bounding = elem.getBoundingClientRect() - const boundingTop = bounding.top - const boundingLeft = bounding.left + const bodyRect = document.body.getBoundingClientRect() + const boundingTop = bounding.top - bodyRect.top + const boundingLeft = bounding.left - bodyRect.left const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode() return { boundingTop, top: scrollTop + boundingTop, boundingLeft, left: scrollLeft + boundingLeft, visibleHeight, visibleWidth } }