微信小程序左滑删除的功能实现

微信小程序使用的是改变left /其实也可以使用tranform:tranlatex

<view class="box1"  bindtouchmove="touchMove" bindtouchstart="touchstart" style="left:{{moveSpace}}px">
  <view class="bluebox"></view>
  <view class="redbox" ></view>
</view>

样式的话主要还是依靠定位把删除模块隐藏,然后一个优化点是把动画延迟一下,更有体验感

.box1{
  height: 200rpx;
  background-color: #cccc;
  position: relative;
  transition: all 0.5s;
}
.bluebox{
  height: 100%;
  background-color: blue;
  width: 100%;
}
.redbox{
  height:100%;
  width: 200rpx;
  background-color: red;
  position: absolute;
  top: 0;
  right: -200rpx;
}


Component({
  properties: {},
  data: {
    touchStart: null,
    moveSpace: 0 
  },
  methods: {
    touchstart: function (e) {
      // console.log(e.changedTouches[0].clientX)
      this.setData({
        touchStart: e.changedTouches[0].clientX
      })
    },
    touchMove: function (e) {
      let clientX = e.changedTouches[0].clientX;
      let touchStart = this.data.touchStart;
      if (touchStart != null) {
        if (clientX - touchStart >= 100) {
          this.setData({
            touchStart: null,
            moveSpace: 0
          })
        } else if (clientX - touchStart <= -100) {
          this.setData({
            touchStart: null,
            moveSpace: -90
          })
        }
      }
    },
  }
})

 

posted @ 2020-05-13 14:58  旧崖  阅读(933)  评论(0编辑  收藏  举报