微信小程序列表中item左滑删除功能


Posted in Javascript onNovember 07, 2018

第一步:把想要的两种样式写出来

1.正常显示的样式

微信小程序列表中item左滑删除功能

css:

.box{
 height: 100%;
}
.item{
 position:relative;
 top: 0;
 width: 100%;
 height: 150rpx;
 border-bottom: #d9d9d9 solid 1rpx;
 padding: 0;
}
.item .content{
 background-color: #ffffff;
 height: 100%;
 position: relative;
 left: 0;
 width: 100%;
 transition: all 0.3s;
}
.item .del-button {
 position: absolute;
 right: -140rpx;
 width: 140rpx;
 height: 100%;
 background-color: #df3448;
 color: #fff;
 top: 0;
 text-align: center;
 display: flex;
 justify-content: center;
 align-items: center;
 transition: all 0.3s;
 font-size: 24rpx;
}

xwml:

<view class="box">
 <view class="item {{status ? '' :'active'}}">
  <view class="content">显示正常内容</view>
  <view class="del-button">删除</view>
 </view>
</view>

2.显示删除按钮

微信小程序列表中item左滑删除功能

.item.active .content{
 left: -140rpx;
}
.item.active .del-button{
 right: 0;
}

同时在js中控制样式是否active

data: {
  status:false //true为正常显示,false为显示删除按钮
 },

第二步:绑定事件

其实此时可以绑定bindtap事件,来切换active的状态,点击一下是“显示正常内容”,再点击一下是“删除”。然后,现在把点击事件改成touch并向左move之后再触发,就很好理解了。(样式中,已经提前写好的transition: all 0.3s;就是为了使两个状态之间有个过渡)

微信小程序提供了两个事件可以使用,一个是bindtouchstart,通过这个事件我们可以获得用户刚点击(手指还未抬起)时的坐标。

touchS(e) {
 // 获得起始坐标
 this.startX = e.touches[0].clientX;
 this.startY = e.touches[0].clientY;
},

还有一个是bindtouchmove,我们可以一直获取当前的坐标(用户手指一直在屏幕上滑动时)。因此,我们只需要得到x轴上的移动的前后坐标相减是正数,就是向左移动。

touchM(e) {
  // 获得当前坐标
  this.currentX = e.touches[0].clientX;
  this.currentY = e.touches[0].clientY;
  const x = this.startX - this.currentX; //横向移动距离
  const y = Math.abs(this.startY - this.currentY); //纵向移动距离,若向左移动有点倾斜也可以接受
  if (x > 35 && y < 110) {
  //向左滑是显示删除
   this.setData({
    status: false
   })
  } else if (x < -35 && y < 110) {
  //向右滑
   this.setData({
    status: true
   })
  }
 },

然后绑定到Item上

<view class="box">
 <view class="item {{status ? '' :'active'}}">
  <view class="content" bindtouchstart="touchS" bindtouchmove="touchM">显示正常内容</view>
  <view class="del-button">删除</view>
 </view>
</view>

最后再在删除的view里bindtap一个删除方法即可删除。

以上是最简版的效果,还需很多优化要自行添加。

总结

以上所述是小编给大家介绍的微信小程序列表中item左滑删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery点击tr实现checkbox选中的方法
Mar 19 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
D3.js中强制异步文件读取同步的几种方法
Feb 06 Javascript
vue-router路由简单案例介绍
Feb 21 Javascript
jquery获取select,option所有的value和text的实例
Mar 06 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 #Javascript
VueCli3构建TS项目的方法步骤
Nov 07 #Javascript
vue调试工具vue-devtools安装及使用方法
Nov 07 #Javascript
vue+webpack中配置ESLint
Nov 07 #Javascript
利用jqgrid实现上移下移单元格功能
Nov 07 #Javascript
React 源码中的依赖注入方法
Nov 07 #Javascript
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 #Javascript
You might like
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
js 深拷贝函数
2008/12/04 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
js常见遍历操作小结
2019/06/06 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python之PyMongo使用总结
2017/05/26 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python statsmodel的使用
2020/12/21 Python
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
中学门卫岗位职责
2013/12/26 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
药店采购员岗位职责
2014/09/30 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
中学生学习保证书
2015/02/26 职场文书
工作年限证明模板
2015/06/15 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python