vue 移动端左右滑动

html内容:

<template>
    <div>
        <div ref="slide" @touchstart="start($event)" @touchmove="move($event)" @touchend="end($event)" style="border:1px solid red;height:150px;">
          试试滑动我
        </div>
        <div v-show="isshow">
            {{msg}}
        </div>
    </div>
</template>

script内容:

<script>
  export default {
    name:'comment',
    data() {
      return {
        isshow:false,
        flag: false,
        startX: 0,
        endX: 0,
        msg:'',
      }
    },
    mounted (){
            var _this = this;
            // 使用js的现代事件监听transition过渡结束
            this.$refs.slide.addEventListener('transitionend',function(){
                _this.endX = this.offsetLeft;
            })
        },
    methods: {
        start (e){  //记录开始滑动屏幕的X轴的位置
                this.flag = true;
                this.startX = e.touches[0].clientX;
                this.endX = this.$refs.slide.offsetLeft;
            },
            move (e){
                if(this.flag){
                    // 处理鼠标移动的逻辑
                    var moveX = this.endX + (e.touches[0].clientX - this.startX);  //计算滑动的距离
                    
                }
            },
            end (e){
                if(this.flag){
                    this.flag = false;
                    var moveX = e.changedTouches[0].clientX - this.startX;  //计算滑动的距离
                    if(moveX < 0){    //向左滑动
                        this.isshow=true;
                        this.msg="向左左左左左左左左左滑动了!";
                    }else if(moveX > 0){
                        this.isshow=true;
                        this.msg="向右右右右右滑动了!";
                    }
                }
            },

    }
  }
</script>

有其它效果可参考:https://www.cnblogs.com/webmuluo/p/11096124.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值