微信小程序之拖拽排序(代码分享)
index.wxml
<!--index.wxml-->
<viewclass="container">
<viewbindtap="box"class="box">
<viewdisable-scroll="true"wx:for="{{content}}"bindtouchmove="move"bindtouchstart="movestart"bindtouchend="moveend"data-index="{{item.id}}"data-main="{{mainx}}"class="main{{mainx==item.id?'mainmove':'mainend'}}"style="left:{{start.x}}px;top:{{start.y}}px">{{item.content}}</view>
</view>
</view>
index.js
//index.js
//获取应用实例
varapp=getApp();
varx,y,x1,y1,x2,y2,index,currindex,n,yy;
vararr1=[{content:11,id:1},{content:22,id:2},{content:33,id:3},{content:44,id:4},{content:55,id:5}];
Page({
data:{
mainx:0,
content:[{content:11,id:1},{content:22,id:2},{content:33,id:3},{content:44,id:4},{content:55,id:5}],
start:{x:0,y:0}
},
movestart:function(e){
currindex=e.target.dataset.index;
x=e.touches[0].clientX;
y=e.touches[0].clientY;
x1=e.currentTarget.offsetLeft;
y1=e.currentTarget.offsetTop;
},
move:function(e){
yy=e.currentTarget.offsetTop;
x2=e.touches[0].clientX-x+x1;
y2=e.touches[0].clientY-y+y1;
this.setData({
mainx:currindex,
opacity:0.7,
start:{x:x2,y:y2}
})
},
moveend:function(){
if(y2!=0){
vararr=[];
for(vari=0;i<this.data.content.length;i++){
arr.push(this.data.content[i]);
}
varnx=this.data.content.length;
n=1;
for(vark=2;k<nx;k++){
if(y2>(52*(k-1)+k*2-26)){
n=k;
}
}
if(y2>(52*(nx-1)+nx*2-26)){
n=nx;
}
console.log(arr);
console.log(arr1)
arr.splice((currindex-1),1);
arr.splice((n-1),0,arr1[currindex-1]);
arr1=[];
for(varm=0;m<this.data.content.length;m++){
console.log(arr[m]);
arr[m].id=m+1;
arr1.push(arr[m]);
}
//console.log(arr1);
this.setData({
mainx:"",
content:arr,
opacity:1
})
}
}
})
index.wxss
.container{
height:100%;
display:flex;
flex-direction:column;
align-items:center;
justify-content:space-between;
padding:200rpx0;
box-sizing:border-box;
}
.box{width:300px;position:relative}
.main{width:90%;height:50px;background:#eee;border:1pxsolid#ccc;margin:2pxauto;text-align:center;line-height:50px;}
.mainmove{position:absolute;opacity:0.7}
.maind{background:#fff;border:1pxdashed#efefef;}
.mainend{position:static;opacity:1;}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!