微信小程序列表中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的模态div层弹出效果
Aug 21 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
Apr 25 Javascript
js日期联动示例
May 02 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
jQuery实现的分页功能示例
Jan 22 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
Apr 24 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
May 26 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 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写的serv-u的web申请账号的程序
2006/10/09 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
继续学习javascript闭包
2015/12/03 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
技校个人求职信范文
2014/01/25 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
小型婚礼主持词
2015/06/30 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python