[英]Hammerjs is not detecting swipe movement
我正在使用带有 Nuxt 的Hammerjs 2.0.8 ,但我似乎无法让它检测到滑动动作。 这是我完成设置的方式。 如果我将识别器更改为[Hammer.Pan, { direction: Hammer.DIRECTION_HORIZONTAL }]
并在 pan 事件上hammer.on('pan', this.handleTouchEvents)
; 它运行this.handleTouchEvents
方法。
<template>
<v-app>
<v-main>
<v-container id="touch-container" fluid>
<div class="items">
...
</div>
</v-container>
</v-main>
</v-app>
</template>
<script>
export default {
mounted () {
const Hammer = require('hammerjs')
const touchContainer = document.getElementById('touch-container')
const hammer = new Hammer.Manager(touchContainer, {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_HORIZONTAL }]
]
})
hammer.on('swipe', this.handleTouchEvents)
},
methods: {
handleTouchEvents (e) {
alert(e.type)
}
}
}
</script>
<style scoped>
#touch-container {
height: 100%;
min-width: 100%;
overflow-x: hidden;
}
#items {
touch-action: pan-y;
}
</style>
知道如何解决这个问题吗?
touchContainer
可能未定义。
2件事:
process.client
检查它是否在客户端this.$nextTick()
在 UI 上创建元素在这里试试这个:
async mounted () {
if(process.client) {
await this.$nextTick();
const Hammer = require('hammerjs')
const touchContainer = document.getElementById('touch-container')
const hammer = new Hammer.Manager(touchContainer, {
recognizers: [
[Hammer.Swipe, { direction: Hammer.DIRECTION_HORIZONTAL }]
]
})
hammer.on('swipe', this.handleTouchEvents)
}
},
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.