小程序movable-area movable-view实现左滑删除

<view style="{{'width:'+parentW+'px;overflow-x:hidden;height:'+parentH+'px;overflow-y:scroll;'}}">
<!-- parentW是屏幕的宽度,parentH是可视区的高度 -->
<movable-area class="moveArea" wx:for="{{iteList}}" wx:key="{{item}}" bindtap="toPosiDetl" data-id="{{item.work.id}}">
  <movable-view class="moveView" x="{{item.x}}" direction="horizontal" bindtouchend="touchEnd" bindtouchstart="touchStart" animation="{{true}}" data-id="{{item.id}}">
    <view class="parent">
    </view>
    <view class="delete" catchtap="delete" data-id="{{item.work.id}}">
      <text>删除</text>
    </view>
  </movable-view>
</movable-area>
</view>
touchStart(e) {
    this.data.endX = e.changedTouches[0].clientX
  },
  touchEnd(e) {
    this.data.startX = e.changedTouches[0].clientX
    let tempList = this.data.iteList
    if (this.data.startX - this.data.endX < -20) { //左滑动
      for (let index in tempList) {
        if (tempList[index].id == e.currentTarget.dataset.id) {
          tempList[index].x = -160
          this.setData({
            iteList: tempList
          })
        }
      }
    } else if (this.data.startX - this.data.endX > 20) { //右滑动
      for (let index in tempList) {
        if (tempList[index].id == e.currentTarget.dataset.id) {
          tempList[index].x = 0
          this.setData({
            iteList: tempList
          })
        }
      }
    }
  }
.parent{
  background:#fff;
  padding:30rpx;
  padding-bottom:0;
  width:100%;
  box-sizing: border-box;
  height: 260rpx;
  display: inline-block;
}
.moveArea{//宽高要设置
  height:260rpx; 
  width: 100%;
  margin-bottom:10rpx;
}
.moveView{//宽度比父容器大,其中的删除按钮默认在可视区外
  height: 260rpx;
  width:120%;
  display:flex;
}

在这里插入图片描述
上图中:
item(宽度)=‘movable-area’(宽度)
item+删除=‘movable-view’
parent=item

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值