uniapp 滑动操作

  • Post author:
  • Post category:uniapp


滑动操作

简答的html代码,没有样式 和 效果

利用了 touchstart点击到 touchend点击结束

// html
<view class="container" @touchstart="start" @touchend="end">
<view>

我们有 uniapp 的自带事件,理一下思路,我们点击到盒子后,记录开始的 x y轴位置,当拖动结束后,也就是抬起手指,去比较我们现在的位置和初始的位置,去判断我们是什么操作,做什么反馈处理

// js
data(){
   return{
      startData:{
            clientX:'',
            clientY:''
       }
    }
}
添加方法:

start(e){               
    this.startData.clientX=e.changedTouches[0].clientX;             
    this.startData.clientY=e.changedTouches[0].clientY;
},

end(e){
    const subX=e.changedTouches[0].clientX-this.startData.clientX;
    const subY=e.changedTouches[0].clientY - this.startData.clientY;
    if(subY>50 || subY<-50){
        console.log('上下')
    }else{
        if(subX>50){
            console.log('右')
        }else if(subX<-50){
            console.log('左')
        }else{
            console.log('无效')
        }
    }
}

上面代码是 我们手指离开后才会有效果,我们想做跟随的也可以,uniapp提供我们移动时的事件

@touchmove="move"

参数和上面开始,结束一样,方法是我们按下手指后每一次移动都会触发

这时我们需要第二个变量,例:当我们向左滑动,和初始值比较肯定是小了,每次滑动记录这个值,并通过 style 样式赋值给需要滑动的盒子,当这个值到了临界值,比如50,我们就移动盒子并固定好。

注:当向右滑动时,

先减去我们记录好的值,这个值为0,既已经回到原位。



版权声明:本文为paidaboluo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。