微信小程序 实现列表项滑动显示删除按钮的功能
发布时间 - 2026-01-11 00:38:58 点击率:次微信小程序 实现列表项滑动显示删除按钮的功能

微信小程序并没有提供列表控件,所以也没有iOS上惯用的列表项左滑删除的功能,SO只能自己干了。
原理很简单,用2个层,上面的层显示正常的内容,下面的层显示一个删除按钮,就是记录手指滑动的距离,动态的来移动上层元素,当然上层用绝对定位。
wxml:
<view class="container">
<view class="record-box" data-datetime="{{record.datetime}}" wx:for="{{detailList}}" wx:for-item="record">
<view class="record" style="left:{{record.offsetX}}px" bindtouchstart="recordStart" catchtouchmove="recordMove" bindtouchend="recordEnd">
<view class="left">
<view>{{record.type}} {{record.count+record.unit}}</view>
<view class="summary">{{record.remark}}</view>
</view>
<view class="right">
{{record.datetime}}
</view>
</view>
<view class="delete-box">
<view>删除</view>
</view>
</view>
</view>
wxss:
@import "../common/weui.wxss";
.container {
box-sizing: border-box;
padding: 0 0 0 0;
}
.record {
display: flex;
flex-direction: row;
align-items: center;
width:100%;
height: 120rpx;
position: absolute;
justify-content: space-between;
background-color: #fff;
}
.record .right{
margin-right: 30rpx;
color: #888888;
}
.record .left{
margin-left: 30rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.record .left .summary{
color: #aaa;
font-size: 30rpx;
line-height: 30rpx;
}
.record-box{
height: 120rpx;
width: 100%;
border-bottom: 1rpx solid #ddd;
background-color: #fff;
}
.delete-box{
background-color: #e64340;
color: #ffffff;
float: right;
height: 100%;
width: 80px;
display: flex;
align-items: center;
justify-content: center;
}
.record-box:last-child {
border-bottom: 0;
}
.record .r-item {
}
JS代码:
var detailList = [
{ datetime: '2017-01-01 17:00', count: 100, unit: 'ml', type: '开水', remark: '哈哈哈哈' },
{ datetime: '2017-01-01 17:01', count: 100, unit: 'ml', type: '开水' },
{ datetime: '2017-01-01 17:02', count: 100, unit: 'ml', type: '开水' }
];
var recordStartX = 0;
var currentOffsetX = 0;
Page(
{
data: {
detailList: detailList
}
,
recordStart: function (e) {
recordStartX = e.touches[0].clientX;
currentOffsetX = this.data.detailList[0].offsetX;
console.log('start x ', recordStartX);
}
,
recordMove: function (e) {
var detailList = this.data.detailList;
var item = detailList[0];
var x = e.touches[0].clientX;
var mx = recordStartX - x;
console.log('move x ', mx);
var result = currentOffsetX - mx;
if (result >= -80 && result <= 0) {
item.offsetX = result;
}
this.setData({
detailList: detailList
});
}
,
recordEnd: function (e) {
var detailList = this.data.detailList;
var item = detailList[0];
console.log('end x ', item.offsetX);
if (item.offsetX < -40) {
item.offsetX = -80;
} else {
item.offsetX = 0;
}
this.setData({
detailList: detailList
});
}
}
);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 微信小程序列表项滑动显示删除按钮
# 小程序 列表滑动删除
# 希望能
# 很简单
# 哈哈哈哈
# 干了
# 谢谢大家
# unit
# summary
# wxss
# delete
# remark
# count
# recordMove
# catchtouchmove
# recordStart
# type
# recordEnd
# bindtouchend
# row
# direction
# flex
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何使用Service Container和依赖注入?(代码示例)
Python3.6正式版新特性预览
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
,网页ppt怎么弄成自己的ppt?
在线教育网站制作平台,山西立德教育官网?
如何快速建站并高效导出源代码?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Android仿QQ列表左滑删除操作
大同网页,大同瑞慈医院官网?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
魔方云NAT建站如何实现端口转发?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel如何使用Blade组件和插槽?(Component代码示例)
三星网站视频制作教程下载,三星w23网页如何全屏?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
C语言设计一个闪闪的圣诞树
如何在万网利用已有域名快速建站?
文字头像制作网站推荐软件,醒图能自动配文字吗?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
使用C语言编写圣诞表白程序
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何用腾讯建站主机快速创建免费网站?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Python数据仓库与ETL构建实战_Airflow调度流程详解
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
HTML 中如何正确使用模板变量为元素的 name 属性赋值
,南京靠谱的征婚网站?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
香港服务器部署网站为何提示未备案?
js代码实现下拉菜单【推荐】
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
Android使用GridView实现日历的简单功能
微信小程序 canvas开发实例及注意事项
高防服务器租用指南:配置选择与快速部署攻略
如何在腾讯云服务器上快速搭建个人网站?
详解Huffman编码算法之Java实现
网站图片在线制作软件,怎么在图片上做链接?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何快速搭建FTP站点实现文件共享?
如何快速搭建高效简练网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何快速上传建站程序避免常见错误?

