微信小程序之拖拽排序(代碼分享)
更新時(shí)間:2017年01月21日 11:05:26 作者:艾瑞卡
本篇文章主要分享了微信小程序拖拽排序的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
index.wxml
<!--index.wxml--> <view class="container"> <view bindtap="box" class="box" > <view disable-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 //獲取應(yīng)用實(shí)例 var app = getApp(); var x,y,x1,y1,x2,y2,index,currindex,n,yy; var arr1 = [{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){ var arr = []; for(var i=0; i<this.data.content.length; i++){ arr.push(this.data.content[i]); } var nx = this.data.content.length; n=1; for(var k=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(var m=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: 200rpx 0; box-sizing: border-box; } .box{width:300px; position: relative} .main{width: 90%; height:50px; background: #eee; border: 1px solid #ccc; margin:2px auto; text-align: center; line-height: 50px;} .mainmove{position: absolute; opacity: 0.7} .maind{background: #fff; border:1px dashed #efefef;} .mainend{position: static; opacity: 1;}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
javascript實(shí)現(xiàn)的制作特殊字的腳本
javascript實(shí)現(xiàn)的制作特殊字的腳本...2007-06-06javascript Promise簡(jiǎn)單學(xué)習(xí)使用方法小結(jié)
下面小編就為大家?guī)?lái)一篇javascript Promise簡(jiǎn)單學(xué)習(xí)使用方法小結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05Javascript保存網(wǎng)頁(yè)為圖片借助于html2canvas庫(kù)實(shí)現(xiàn)
借助于html2canvas庫(kù),把網(wǎng)頁(yè)保存為Canvas畫布,再把生成的canvas保存成圖片,下面的示例,大家可以看看2014-09-09JS實(shí)現(xiàn)判斷兩個(gè)日期不能跨年和跨月
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript語(yǔ)言實(shí)現(xiàn)判斷兩個(gè)日期不能跨年和跨月,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04JavaScript中運(yùn)算符與數(shù)組擴(kuò)展詳細(xì)講解
這篇文章主要介紹了JavaScript中運(yùn)算符與數(shù)組擴(kuò)展方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-11-11