From 96364845f8d6b5380b08180e644103a4ccc9f292 Mon Sep 17 00:00:00 2001 From: xu_yanfeng Date: Thu, 22 May 2025 18:03:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8chrome=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E6=A8=A1=E6=8B=9F=E5=99=A8=E7=8E=AF=E5=A2=83=E4=B8=8B?= =?UTF-8?q?=EF=BC=8C=E6=8B=96=E5=8A=A8cocos=E5=9B=BE=E6=A0=87=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=93=8D=E5=BA=94=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scripts/inject-view/app.vue | 86 ++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 24 deletions(-) diff --git a/src/scripts/inject-view/app.vue b/src/scripts/inject-view/app.vue index 17c0eb8..90c295e 100644 --- a/src/scripts/inject-view/app.vue +++ b/src/scripts/inject-view/app.vue @@ -6,7 +6,7 @@ - + @@ -265,6 +265,7 @@ export default defineComponent({ tipTimer = null; } }); + const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); onMounted(async () => { tipTimer = setInterval(() => { showGameTip.value = !!cc.game.isPaused(); @@ -277,9 +278,66 @@ export default defineComponent({ } updateAssistantTop(root.offsetTop); }); + onDocEventOnMobile(); + onDocEventOnPc(); return; }); + function onDocEventOnMobile() { + const root = toRaw(rootEl.value) as HTMLDivElement; + root.addEventListener("touchstart", (event: TouchEvent) => { + // event.preventDefault(); + // event.stopPropagation(); + // @ts-ignore + const root = toRaw(rootEl.value) as HTMLDivElement | null; + if (!root) { + return; + } + const startY = event.changedTouches[0].pageY; + const startTop = root.offsetTop; + function onTouchMove(e: TouchEvent) { + isDraging = true; + const dy = e.changedTouches[0].pageY - startY; + const top = startTop + dy; + updateAssistantTop(top); + } + function onTouchEnd(e: TouchEvent) { + isDraging = false; + document.removeEventListener("touchmove", onTouchMove, true); + document.removeEventListener("touchend", onTouchEnd, true); + } + document.addEventListener("touchmove", onTouchMove, true); + document.addEventListener("touchend", onTouchEnd, true); + }); + } + function onDocEventOnPc() { + const root = toRaw(rootEl.value) as HTMLDivElement; + root.addEventListener("mousedown", (event: MouseEvent) => { + // event.preventDefault(); + // event.stopPropagation(); + // @ts-ignore + const root = toRaw(rootEl.value) as HTMLDivElement | null; + if (!root) { + return; + } + const startY = event.pageY; + const startTop = root.offsetTop; + function onMouseMove(e: MouseEvent) { + isDraging = true; + const dy = e.pageY - startY; + const top = startTop + dy; + updateAssistantTop(top); + } + + function onMouseUp(e: MouseEvent) { + isDraging = false; + document.removeEventListener("mousemove", onMouseMove, true); + document.removeEventListener("mouseup", onMouseUp, true); + } + document.addEventListener("mousemove", onMouseMove, true); + document.addEventListener("mouseup", onMouseUp, true); + }); + } const picking = ref(false); const keydownFunc = (e: KeyboardEvent) => { @@ -354,7 +412,9 @@ export default defineComponent({ } let autoHideTimer = null; let isDraging = false; + const elIcon = ref(null); return { + elIcon, showGameTip, showBtns, listArray, @@ -406,29 +466,7 @@ export default defineComponent({ showBtns.value = false; }, 500); }, - onMouseDown(event: MouseEvent) { - // @ts-ignore - const root = toRaw(rootEl.value) as HTMLDivElement | null; - if (!root) { - return; - } - const startY = event.pageY; - const startTop = root.offsetTop; - function onMouseMove(e: MouseEvent) { - isDraging = true; - const dy = e.pageY - startY; - const top = startTop + dy; - updateAssistantTop(top); - } - - function onMouseUp(e: MouseEvent) { - isDraging = false; - document.removeEventListener("mousemove", onMouseMove, true); - document.removeEventListener("mouseup", onMouseUp, true); - } - document.addEventListener("mousemove", onMouseMove, true); - document.addEventListener("mouseup", onMouseUp, true); - }, + onMouseDown(event: MouseEvent) {}, }; }, });