微信小程序 实现列表项滑动显示删除按钮的功能
微信小程序实现列表项滑动显示删除按钮的功能
微信小程序并没有提供列表控件,所以也没有iOS上惯用的列表项左滑删除的功能,SO只能自己干了。
原理很简单,用2个层,上面的层显示正常的内容,下面的层显示一个删除按钮,就是记录手指滑动的距离,动态的来移动上层元素,当然上层用绝对定位。
wxml:
{{record.type}}{{record.count+record.unit}} {{record.remark}} {{record.datetime}} 删除
wxss:
@import"../common/weui.wxss";
.container{
box-sizing:border-box;
padding:0000;
}
.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:1rpxsolid#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代码:
vardetailList=[
{datetime:'2017-01-0117:00',count:100,unit:'ml',type:'开水',remark:'哈哈哈哈'},
{datetime:'2017-01-0117:01',count:100,unit:'ml',type:'开水'},
{datetime:'2017-01-0117:02',count:100,unit:'ml',type:'开水'}
];
varrecordStartX=0;
varcurrentOffsetX=0;
Page(
{
data:{
detailList:detailList
}
,
recordStart:function(e){
recordStartX=e.touches[0].clientX;
currentOffsetX=this.data.detailList[0].offsetX;
console.log('startx',recordStartX);
}
,
recordMove:function(e){
vardetailList=this.data.detailList;
varitem=detailList[0];
varx=e.touches[0].clientX;
varmx=recordStartX-x;
console.log('movex',mx);
varresult=currentOffsetX-mx;
if(result>=-80&&result<=0){
item.offsetX=result;
}
this.setData({
detailList:detailList
});
}
,
recordEnd:function(e){
vardetailList=this.data.detailList;
varitem=detailList[0];
console.log('endx',item.offsetX);
if(item.offsetX<-40){
item.offsetX=-80;
}else{
item.offsetX=0;
}
this.setData({
detailList:detailList
});
}
}
);
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!