mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
fix: FireFox 不支持 TouchEvent 的处理
This commit is contained in:
parent
8f0b272224
commit
62c088c067
@ -264,7 +264,7 @@ export default defineComponent({
|
|||||||
lastPos = { x, y }
|
lastPos = { x, y }
|
||||||
lastTime = new Date().getTime()
|
lastTime = new Date().getTime()
|
||||||
|
|
||||||
if (e instanceof TouchEvent) {
|
if (!(e instanceof MouseEvent)) {
|
||||||
mouse.value = { x: mouseX, y: mouseY }
|
mouse.value = { x: mouseX, y: mouseY }
|
||||||
mouseInCanvas.value = true
|
mouseInCanvas.value = true
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ export default (
|
|||||||
const { addHistorySnapshot } = useHistorySnapshot()
|
const { addHistorySnapshot } = useHistorySnapshot()
|
||||||
|
|
||||||
const dragElement = (e: MouseEvent | TouchEvent, element: PPTElement) => {
|
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 (isTouchEvent && (!e.changedTouches || !e.changedTouches[0])) return
|
||||||
|
|
||||||
if (!activeElementIdList.value.includes(element.id)) return
|
if (!activeElementIdList.value.includes(element.id)) return
|
||||||
@ -110,8 +110,8 @@ export default (
|
|||||||
verticalLines = uniqAlignLines(verticalLines)
|
verticalLines = uniqAlignLines(verticalLines)
|
||||||
|
|
||||||
const handleMousemove = (e: MouseEvent | TouchEvent) => {
|
const handleMousemove = (e: MouseEvent | TouchEvent) => {
|
||||||
const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX
|
const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX
|
||||||
const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY
|
const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY
|
||||||
|
|
||||||
// 如果鼠标滑动距离过小,则将操作判定为误操作:
|
// 如果鼠标滑动距离过小,则将操作判定为误操作:
|
||||||
// 如果误操作标记为null,表示是第一次触发移动,需要计算当前是否是误操作
|
// 如果误操作标记为null,表示是第一次触发移动,需要计算当前是否是误操作
|
||||||
@ -297,8 +297,8 @@ export default (
|
|||||||
|
|
||||||
alignmentLines.value = []
|
alignmentLines.value = []
|
||||||
|
|
||||||
const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX
|
const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX
|
||||||
const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY
|
const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY
|
||||||
|
|
||||||
if (startPageX === currentPageX && startPageY === currentPageY) return
|
if (startPageX === currentPageX && startPageY === currentPageY) return
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ export default (
|
|||||||
|
|
||||||
// 缩放元素
|
// 缩放元素
|
||||||
const scaleElement = (e: MouseEvent | TouchEvent, element: Exclude<PPTElement, PPTLineElement>, command: OperateResizeHandlers) => {
|
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
|
if (isTouchEvent && (!e.changedTouches || !e.changedTouches[0])) return
|
||||||
|
|
||||||
let isMouseDown = true
|
let isMouseDown = true
|
||||||
@ -238,8 +238,8 @@ export default (
|
|||||||
const handleMousemove = (e: MouseEvent | TouchEvent) => {
|
const handleMousemove = (e: MouseEvent | TouchEvent) => {
|
||||||
if (!isMouseDown) return
|
if (!isMouseDown) return
|
||||||
|
|
||||||
const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX
|
const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX
|
||||||
const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY
|
const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY
|
||||||
|
|
||||||
const x = currentPageX - startPageX
|
const x = currentPageX - startPageX
|
||||||
const y = currentPageY - startPageY
|
const y = currentPageY - startPageY
|
||||||
@ -420,8 +420,8 @@ export default (
|
|||||||
|
|
||||||
alignmentLines.value = []
|
alignmentLines.value = []
|
||||||
|
|
||||||
const currentPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX
|
const currentPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX
|
||||||
const currentPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY
|
const currentPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY
|
||||||
|
|
||||||
if (startPageX === currentPageX && startPageY === currentPageY) return
|
if (startPageX === currentPageX && startPageY === currentPageY) return
|
||||||
|
|
||||||
|
@ -69,8 +69,8 @@ export default (
|
|||||||
|
|
||||||
// 如果目标元素已被选中,同时也是当前操作元素,那么当目标元素在该状态下再次被点击时,将被设置为多选元素中的激活成员
|
// 如果目标元素已被选中,同时也是当前操作元素,那么当目标元素在该状态下再次被点击时,将被设置为多选元素中的激活成员
|
||||||
else if (activeGroupElementId.value !== element.id) {
|
else if (activeGroupElementId.value !== element.id) {
|
||||||
const startPageX = e instanceof TouchEvent ? e.changedTouches[0].pageX : e.pageX
|
const startPageX = e instanceof MouseEvent ? e.pageX : e.changedTouches[0].pageX
|
||||||
const startPageY = e instanceof TouchEvent ? e.changedTouches[0].pageY : e.pageY
|
const startPageY = e instanceof MouseEvent ? e.pageY : e.changedTouches[0].pageY
|
||||||
|
|
||||||
;(e.target as HTMLElement).onmouseup = (e: MouseEvent) => {
|
;(e.target as HTMLElement).onmouseup = (e: MouseEvent) => {
|
||||||
const currentPageX = e.pageX
|
const currentPageX = e.pageX
|
||||||
|
Loading…
x
Reference in New Issue
Block a user