微信小程序 滑动删除列表项

效果图

滑动效果+删除

思路

  • 每个列表项绑定touchstarttouchmove事件,监听滑动手势,确定滑动角度,判断滑动是否有效
  • 列表数据源每一项包含标志值isTouchMove,用来确定此项是否滑动成功
  • 列表项有两个类,根据isTouchMove的值来确定渲染那个类
  • 删除时直接操作数据源

关键代码段

touchmove: function (e) {
    let index = e.currentTarget.dataset.index,//当前索引
      startX = this.data.startX,//开始X坐标
      startY = this.data.startY,//开始Y坐标
      touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标
      touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标
      //获取滑动角度
      angle = this.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });
    this.data.list.forEach(function (v, i) {
      v.isTouchMove = false
      //滑动超过30度角 return
      if (Math.abs(angle) > 30) return;
      if (i == index) {
        if (touchMoveX > startX) //右滑
          v.isTouchMove = false
        else //左滑
          v.isTouchMove = true
      }
    })
    // //更新数据
    this.setData({
      list: this.data.list
    })
  },

源码

源码请移步github>>>>>>去看源码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,286评论 25 708
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,161评论 0 21
  • Google基本语法 在使用Google进行搜索时,我们通常只是简单的输入要搜索的内容,事实上我们还可以加入一些搜...
    此番风景阅读 7,706评论 0 9
  • 星期六 天气晴 正在店里干活,婆婆拿着我的手机,急急忙忙的说,有电话来了,还没等我接呢!挂了电话了,往...
    陌上清歌的简书阅读 101评论 0 0
  • 二月风似剪,春光上梅梢。 雪肌匀朱粉,绿鬓坠金摇。 香冷蜂犹恋,枝仄花愈娇。 无情偏称艳,桃李未含苞。
    江南烟雨阅读 336评论 2 4