博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序左滑删除功能
阅读量:4923 次
发布时间:2019-06-11

本文共 2958 字,大约阅读时间需要 9 分钟。

效果图如下:

效果图

 

wxml代码:

1 
2
3
{
{item.content}}
4
删除
5
6

wxss代码:

1 .touch-item { 2  font-size: 14px; 3  display: flex; 4  justify-content: space-between; 5  border-bottom:1px solid #ccc; 6  width: 100%; 7  overflow: hidden 8 } 9 .content {10  width: 100%;11  padding: 10px;12  line-height: 22px;13  margin-right:0;14  -webkit-transition: all 0.4s;15  transition: all 0.4s;16  -webkit-transform: translateX(90px);17  transform: translateX(90px);18  margin-left: -90px19 }20 .del {21  background-color: orangered;22  width: 90px;23  display: flex;24  flex-direction: column;25  align-items: center;26  justify-content: center;27  color: #fff;28  -webkit-transform: translateX(90px);29  transform: translateX(90px);30  -webkit-transition: all 0.4s;31  transition: all 0.4s;32 }33 .touch-move-active .content,34 .touch-move-active .del {35  -webkit-transform: translateX(0);36  transform: translateX(0);37 }

js代码:

1 var app = getApp() 2 Page({ 3  data: { 4   items: [], 5   startX: 0, //开始坐标 6   startY: 0 7  }, 8  onLoad: function () { 9   for (var i = 0; i < 10; i++) {10    this.data.items.push({11     content: i + " 向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦,向左滑动删除哦",12     isTouchMove: false //默认全隐藏删除13    })14   }15   this.setData({16    items: this.data.items17   })18  },19  //手指触摸动作开始 记录起点X坐标20  touchstart: function (e) {21   //开始触摸时 重置所有删除22   this.data.items.forEach(function (v, i) {23    if (v.isTouchMove)//只操作为true的24     v.isTouchMove = false;25   })26   this.setData({27    startX: e.changedTouches[0].clientX,28    startY: e.changedTouches[0].clientY,29    items: this.data.items30   })31  },32  //滑动事件处理33  touchmove: function (e) {34   var that = this,35    index = e.currentTarget.dataset.index,//当前索引36    startX = that.data.startX,//开始X坐标37    startY = that.data.startY,//开始Y坐标38    touchMoveX = e.changedTouches[0].clientX,//滑动变化坐标39    touchMoveY = e.changedTouches[0].clientY,//滑动变化坐标40    //获取滑动角度41    angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY });42   that.data.items.forEach(function (v, i) {43    v.isTouchMove = false44    //滑动超过30度角 return45    if (Math.abs(angle) > 30) return;46    if (i == index) {47     if (touchMoveX > startX) //右滑48      v.isTouchMove = false49     else //左滑50      v.isTouchMove = true51    }52   })53   //更新数据54   that.setData({55    items: that.data.items56   })57  },58  /**59   * 计算滑动角度60   * @param {Object} start 起点坐标61   * @param {Object} end 终点坐标62   */63  angle: function (start, end) {64   var _X = end.X - start.X,65    _Y = end.Y - start.Y66   //返回角度 /Math.atan()返回数字的反正切值67   return 360 * Math.atan(_Y / _X) / (2 * Math.PI);68  },69  //删除事件70  del: function (e) {71   this.data.items.splice(e.currentTarget.dataset.index, 1)72   this.setData({73    items: this.data.items74   })75  }76 })

教程参考地址:http://www.jb51.net/article/108071.htm

转载于:https://www.cnblogs.com/Mrrabbit/p/7683333.html

你可能感兴趣的文章
缓存帮助类
查看>>
VC++ 2010 创建高级Ribbon界面详解(1)
查看>>
未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序...
查看>>
JS基础(四)运算符
查看>>
swing
查看>>
Continuous integration
查看>>
前端知识点总结
查看>>
github 在ubuntu 使用--常用命令
查看>>
PTA 5-3 解题报告
查看>>
ubuntu遇到包依赖问题出错的解决方法
查看>>
认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。元素、属性和文本的树结构(节点树)。...
查看>>
hl7 V2中Message Control ID的含义及应用
查看>>
IOS 4个容易混淆的属性(textAligment contentVerticalAlignment contentHorizontalAlignment contentMode)...
查看>>
iOS 修改textholder的颜色
查看>>
【资料】wod地城掉落
查看>>
C# FTPHelper(搬运)
查看>>
C#HttpHelper类1.3正式版教程与升级报告
查看>>
【转】Android 语言切换过程分析
查看>>
jpa 多对多关系的实现注解形式
查看>>
Android开发——View绘制过程源码解析(一)
查看>>