微信小程序列表中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 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
基于jquery的获取mouse坐标插件的实现代码
Apr 01 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
Nov 25 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
React中jquery引用的实现方法
Sep 12 jQuery
详解vue 数据传递的方法
Apr 19 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
基于js实现逐步显示文字输出代码实例
Apr 02 Javascript
Vue实现附件上传功能
May 28 Javascript
教你使用vscode 搭建react-native开发环境
Jul 07 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
2.PHP入门
2006/10/09 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
javascript学习之闭包分析
2010/12/02 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
wxPython中listbox用法实例详解
2015/06/01 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
2020/05/20 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
Python descriptor(描述符)的实现
2020/11/15 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
优秀小学生家长评语
2014/01/30 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
党员评议自我评价
2015/03/03 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
环保证明
2015/06/23 职场文书
alibaba seata服务端具体实现
2022/02/24 Java/Android