From 62c088c06788e7ac4155328a6bffabd3ab95ac50 Mon Sep 17 00:00:00 2001 From: pipipi-pikachu Date: Mon, 6 Jun 2022 14:44:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20FireFox=20=E4=B8=8D=E6=94=AF=E6=8C=81=20?= =?UTF-8?q?TouchEvent=20=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/WritingBoard.vue | 2 +- src/views/Editor/Canvas/hooks/useDragElement.ts | 10 +++++----- src/views/Editor/Canvas/hooks/useScaleElement.ts | 10 +++++----- src/views/Editor/Canvas/hooks/useSelectElement.ts | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/components/WritingBoard.vue b/src/components/WritingBoard.vue index 9b971106..a4a988f1 100644 --- a/src/components/WritingBoard.vue +++ b/src/components/WritingBoard.vue @@ -264,7 +264,7 @@ export default defineComponent({ lastPos = { x, y } lastTime = new Date().getTime() - if (e instanceof TouchEvent) { + if (!(e instanceof MouseEvent)) { mouse.value = { x: mouseX, y: mouseY } mouseInCanvas.value = true } diff --git a/src/views/Editor/Canvas/hooks/useDragElement.ts b/src/views/Editor/Canvas/hooks/useDragElement.ts index 4c08867c..0a61515a 100644 --- a/src/views/Editor/Canvas/hooks/useDragElement.ts +++ b/src/views/Editor/Canvas/hooks/useDragElement.ts @@ -19,7 +19,7 @@ export default ( const { addHistorySnapshot } = useHistorySnapshot() const dragElement = (e: MouseEvent | TouchEvent, element: PPTElement) => { - const isTouchEvent = e instanceof TouchEvent + const isTouchEvent = !(e instanceof MouseEvent) if (isTouchEvent && (!e.changedTouches || !e.changedTouches[0])) return if (!activeElementIdList.value.includes(element.id)) return @@ -110,8 +110,8 @@ export default ( verticalLines = uniqAlignLines(verticalLines) const handleMousemove = (e: MouseEvent | TouchEvent) => { - const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX - const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY + const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX + const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY // 如果鼠标滑动距离过小,则将操作判定为误操作: // 如果误操作标记为null,表示是第一次触发移动,需要计算当前是否是误操作 @@ -297,8 +297,8 @@ export default ( alignmentLines.value = [] - const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX - const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY + const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX + const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY if (startPageX === currentPageX && startPageY === currentPageY) return diff --git a/src/views/Editor/Canvas/hooks/useScaleElement.ts b/src/views/Editor/Canvas/hooks/useScaleElement.ts index 375bdff0..398b56e4 100644 --- a/src/views/Editor/Canvas/hooks/useScaleElement.ts +++ b/src/views/Editor/Canvas/hooks/useScaleElement.ts @@ -108,7 +108,7 @@ export default ( // 缩放元素 const scaleElement = (e: MouseEvent | TouchEvent, element: Exclude, command: OperateResizeHandlers) => { - const isTouchEvent = e instanceof TouchEvent + const isTouchEvent = !(e instanceof MouseEvent) if (isTouchEvent && (!e.changedTouches || !e.changedTouches[0])) return let isMouseDown = true @@ -238,8 +238,8 @@ export default ( const handleMousemove = (e: MouseEvent | TouchEvent) => { if (!isMouseDown) return - const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX - const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY + const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX + const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY const x = currentPageX - startPageX const y = currentPageY - startPageY @@ -420,8 +420,8 @@ export default ( alignmentLines.value = [] - const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX - const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY + const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX + const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY if (startPageX === currentPageX && startPageY === currentPageY) return diff --git a/src/views/Editor/Canvas/hooks/useSelectElement.ts b/src/views/Editor/Canvas/hooks/useSelectElement.ts index 4fa2c1e9..74614a36 100644 --- a/src/views/Editor/Canvas/hooks/useSelectElement.ts +++ b/src/views/Editor/Canvas/hooks/useSelectElement.ts @@ -69,8 +69,8 @@ export default ( // 如果目标元素已被选中,同时也是当前操作元素,那么当目标元素在该状态下再次被点击时,将被设置为多选元素中的激活成员 else if (activeGroupElementId.value !== element.id) { - const startPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX - const startPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY + const startPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX + const startPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY ;(e.target as HTMLElement).onmouseup = (e: MouseEvent) => { const currentPageX = e.pageX