vue-touch实现上划翻页

本文详细介绍如何在Vue项目中引入并使用vue-touch组件库,实现触摸设备上的滑动事件监听,包括全局安装、main.js引入及具体组件内的事件绑定与处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、全局引入:

npm insall vue-touch@next --save

2、main.js中引入:

import VueTouch from 'vue-touch'
Vue.use(VueTouch, {name: 'v-touch'})

3、代码中使用

<template>
    <div class="hello" id="start">
    </div>
</template>

<script>
export default {
  name: 'Start',
  data () {
    return {
      startX: 0, // 鼠标开始点击的x坐标
      startY: 0, // 鼠标开始点击的Y坐标
    }
  },
  mounted () {
    // 给被滑动对象添加事件
    let element = document.getElementById('start')
    this.addHandler(element, 'touchstart', this.handleTouchEvent)
    this.addHandler(element, 'touchend', this.handleTouchEvent)
    this.addHandler(element, 'touchmove', this.handleTouchEvent)
  },
  components: {
    Logo
  },
  methods: {
      // 给目标添加事件,处理兼容
    addHandler (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false)
        } else if (element.attachEvent) {
            element.attachEvent('on' + type, handler)
        } else {
            element['on' + type] = handler
        }
    },
    // 具体的滑动处理
    handleTouchEvent (event) {
      switch (event.type) {
        case 'touchstart':
          this.startX = event.touches[0].pageX
          this.startY = event.touches[0].pageY
          break
        case 'touchend':
          var spanX = event.changedTouches[0].pageX - this.startX
          var spanY = event.changedTouches[0].pageY - this.startY
          if(spanY < -50){
              this.$router.push('/end')
          }
          break
        case 'touchmove':
          // 阻止默认行为
          event.preventDefault()
          break
      }
    },
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
@import './css/style.css';
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值