feat: 放映状态添加触摸屏上下滑动翻页

This commit is contained in:
pipipi-pikachu 2021-08-21 09:43:36 +08:00
parent 8e4465e31b
commit ddc25a1151

View File

@ -3,6 +3,8 @@
<div
class="slide-list"
@mousewheel="$event => mousewheelListener($event)"
@touchstart="$event => touchStartListener($event)"
@touchend="$event => touchEndListener($event)"
v-contextmenu="contextmenus"
>
<div
@ -217,6 +219,29 @@ export default defineComponent({
else if (e.deltaY > 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,