微信小程序列表中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 关键字屏蔽实现函数
Aug 02 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
jquery等待效果示例
May 01 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
js 显示日期时间的实例(时间过一秒加1)
Oct 25 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
jsonp跨域及实现百度首页联想功能的方法
Aug 30 Javascript
浅谈layui 数据表格前后台传值的问题
Sep 12 Javascript
vue.js+element 默认提示中英文操作
Nov 11 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
php创建session的方法实例详解
2015/01/27 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
基于Python解密仿射密码
2019/10/21 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
工作收入住址证明
2014/10/28 职场文书
放假通知
2015/04/14 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis