fix: FireFox 不支持 TouchEvent 的处理

This commit is contained in:
pipipi-pikachu 2022-06-06 14:44:15 +08:00
parent 8f0b272224
commit 62c088c067
4 changed files with 13 additions and 13 deletions

View File

@ -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
}

View File

@ -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

View File

@ -108,7 +108,7 @@ export default (
// 缩放元素
const scaleElement = (e: MouseEvent | TouchEvent, element: Exclude<PPTElement, PPTLineElement>, 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

View File

@ -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