微信小程序中怎么实现左滑删除效果
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍"微信小程序中怎么实现左滑删除效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序中怎么实现左滑删除效果"文章能帮助大家解决问题。先看
千家信息网最后更新 2025年01月19日微信小程序中怎么实现左滑删除效果
这篇文章主要介绍"微信小程序中怎么实现左滑删除效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"微信小程序中怎么实现左滑删除效果"文章能帮助大家解决问题。
先看效果
要实现的效果:
1,当向左滑动时,item跟随手指像左移动,同时右侧出现两个可点击的按钮
2,当滑动距离大于按钮宽度一半松开手指时,item自动滑动到左侧显示出按钮,小于一半时item自动回到原来的位置,隐藏按钮。
思路:
1,首先页面每个item分为上下两层,上面一层放置正常内容,下面一层放置左滑显示出的按钮,这个可以使用z-index来实现分层。
2,item上层使用绝对定位,我们操纵 left 属性的值来实现像左移动。
3,我们通过微信小程序api提供的touch对象和3个有关手指触摸的函数(touchstart,touchmove,touchend)来实现item随手指移动。
由于比较简单,所以直接上代码了,详细的讲解都在代码的注释中,首先看下页面的布局
设为默认地址 删除
再看js代码
Page({ data:{ addressList:[{"Contact":"钟诚","Mobile":13888888888,"Address":"江苏省苏州市工业园区创意产业园"},{"Contact":"凹凸曼","Mobile":13666666666,"Address":"江苏省苏州市工业园区独墅湖体育馆"},{"Contact":"图傲曼","Mobile":13666666666,"Address":"江苏省苏州市工业园区独墅湖体育馆"}], editIndex:0, delBtnWidth:150//删除按钮宽度单位(rpx) }, onLoad:function(options){}, //手指刚放到屏幕触发 touchS:function(e){ console.log("touchS"+e); //判断是否只有一个触摸点 if(e.touches.length==1){ this.setData({ //记录触摸起始位置的X坐标 startX:e.touches[0].clientX }); } }, //触摸时触发,手指在屏幕上每移动一次,触发一次 touchM:function(e){ console.log("touchM:"+e); var that = this if(e.touches.length==1){ //记录触摸点位置的X坐标 var moveX = e.touches[0].clientX; //计算手指起始点的X坐标与当前触摸点的X坐标的差值 var disX = that.data.startX - moveX; //delBtnWidth 为右侧按钮区域的宽度 var delBtnWidth = that.data.delBtnWidth; var txtStyle = ""; if(disX == 0 || disX < 0){//如果移动距离小于等于0,文本层位置不变 txtStyle = "left:0px"; }else if(disX > 0 ){//移动距离大于0,文本层left值等于手指移动距离 txtStyle = "left:-"+disX+"px"; if(disX>=delBtnWidth){ //控制手指移动距离最大值为删除按钮的宽度 txtStyle = "left:-"+delBtnWidth+"px"; } } //获取手指触摸的是哪一个item var index = e.currentTarget.dataset.index; var list = that.data.addressList; //将拼接好的样式设置到当前item中 list[index].txtStyle = txtStyle; //更新列表的状态 this.setData({ addressList:list }); } }, touchE:function(e){ console.log("touchE"+e); var that = this if(e.changedTouches.length==1){ //手指移动结束后触摸点位置的X坐标 var endX = e.changedTouches[0].clientX; //触摸开始与结束,手指移动的距离 var disX = that.data.startX - endX; var delBtnWidth = that.data.delBtnWidth; //如果距离小于删除按钮的1/2,不显示删除按钮 var txtStyle = disX > delBtnWidth/2 ? "left:-"+delBtnWidth+"px":"left:0px"; //获取手指触摸的是哪一项 var index = e.currentTarget.dataset.index; var list = that.data.addressList; list[index].txtStyle = txtStyle; //更新列表的状态 that.setData({ addressList:list }); } }
关于"微信小程序中怎么实现左滑删除效果"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
手指
按钮
移动
效果
坐标
程序
宽度
代码
园区
工业
工业园区
知识
江苏
江苏省
苏州
苏州市
更新
位置
体育
体育馆
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
头条app用什么数据库
网络安全syb创业计划书
我的世界用什么开服务器安全
华容道软件开发
中国商标数据库
poe部署服务器
三个数据库表如何连接
郎溪智能软件开发服务是什么
百度智能云服务器怎么开机
电信网络安全维护是做什么
高效连接香港服务器
珠海龙湘软件开发有限公司
学习网络安全与信息化
在创建数据库时每个数据库
网络安全考证有那些
电力系统网络安全非法端口
知微互联网科技产业园
网络安全为手抄报
大学sql数据库教材
信息技术和网络技术的发展
软件开发 面试题 答案
数据库中如何插入中文信息
ibm服务器x86服务器
php 多图上传到数据库
网络安全法泄露多少条入刑
淮南企业软件开发公司
压缩数据库是使用的菜单是什么
人工智能控制系统软件开发创新
嵌入式方向和软件开发方向
安卓的软件开发方案费用