From ddc25a11517791fa00c97e5033a02afadc093df2 Mon Sep 17 00:00:00 2001 From: pipipi-pikachu Date: Sat, 21 Aug 2021 09:43:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=BE=E6=98=A0=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=A6=E6=91=B8=E5=B1=8F=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=BB=91=E5=8A=A8=E7=BF=BB=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Screen/index.vue | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/views/Screen/index.vue b/src/views/Screen/index.vue index 0e971d1a..9f94b491 100644 --- a/src/views/Screen/index.vue +++ b/src/views/Screen/index.vue @@ -3,6 +3,8 @@
0) execNext() }, 500, { leading: true, trailing: false }) + // 触摸屏上下滑动翻页 + const touchInfo = ref<{ x: number; y: number; } | null>(null) + + const touchStartListener = (e: TouchEvent) => { + touchInfo.value = { + x: e.changedTouches[0].pageX, + y: e.changedTouches[0].pageY, + } + } + const touchEndListener = (e: TouchEvent) => { + if (!touchInfo.value) return + + const offsetX = Math.abs(touchInfo.value.x - e.changedTouches[0].pageX) + const offsetY = e.changedTouches[0].pageY - touchInfo.value.y + + if ( Math.abs(offsetY) > offsetX && Math.abs(offsetY) > 50 ) { + touchInfo.value = null + + if (offsetY > 0) execPrev() + else execNext() + } + } + // 快捷键翻页 const keydownListener = (e: KeyboardEvent) => { const key = e.key.toUpperCase() @@ -314,6 +339,8 @@ export default defineComponent({ slideHeight, scale, mousewheelListener, + touchStartListener, + touchEndListener, animationIndex, contextmenus, execPrev,