摘要:最近在類似于滴滴軟件的一款小程序,工程確實(shí)有點(diǎn)大,很多東西都是第一次做。這次記錄一下關(guān)于左滑刪除的一個代碼記錄。主要的思想就是計(jì)算滑動距離的大小來使用中的控制滑動的效果,主流的都是控制邊距來達(dá)到左滑的效果。當(dāng)然的控制也是很重要的
最近在類似于滴滴軟件的一款小程序,工程確實(shí)有點(diǎn)大,很多東西都是第一次做。這次記錄一下關(guān)于左滑刪除的一個代碼記錄。主要的思想就是計(jì)算滑動距離的大小來使用css中的 transition 控制滑動的效果,主流的都是控制邊距margin來達(dá)到左滑的效果。
根據(jù)我所拿到的ui,我所運(yùn)用的是使用寬度和radius來達(dá)到左滑的效果,造一個屬性值,并塞進(jìn)遍歷數(shù)組進(jìn)行判斷是true還是false來控制樣式。
完成效果:
html
<view class=content> <view class=item-box wx:for="{{bankList}}" wx:key="index"> <view class="card-item {{item.txtStyle==true ? txtStyleFalse:txtStyleTrue}}" bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" data-index="{{index}}"> <view class=bank>{{item.bank}}view> <view class=names>{{item.names}}view> <view class=card-num>{{item.cardNum}}view> view> <view class=handle flex-box-start-top> <view class=edit>編輯view> <view class=delect>刪除view> view> view> view>
js
/** * 頁面的初始數(shù)據(jù) */ data: { bankList:[ { bank:中國建設(shè)銀行(建安支行), names:章三, cardNum:***** ******* ***** ***0910 }, { bank: 中國工商銀行(建安支行), names: 章三, cardNum: ***** ******* ***** ***0910 }, ], editIndex: 0, delBtnWidth:180//刪除按鈕寬度單位(rpx) }, /*自定義方法--start */ // touchS: function (e) { if (e.touches.length == 1) { this.setData({ stX: e.touches[0].clientX }); } }, touchM: function (e) { console.log("touchM:" + e); var that = this if (e.touches.length == 1) { //記錄觸摸點(diǎn)位置的X坐標(biāo) var moveX = e.touches[0].clientX; //計(jì)算手指起始點(diǎn)的X坐標(biāo)與當(dāng)前觸摸點(diǎn)的X坐標(biāo)的差值 var disX = that.data.stX - moveX; //delBtnWidth 為右側(cè)按鈕區(qū)域的寬度 var delBtnWidth = that.data.delBtnWidth; var txtStyle = "true"; if(disX == 0 || disX < 0){ //如果移動距離小于等于0,文本層位置不變 width: 660rpx;border-radius: 10rpx; // txtStyle = "left:0px"; txtStyle = "true"; }else if(disX > 0 ){ //移動距離大于0,文本層left值等于手指移動距離 width: 470rpx;border-radius: 10rpx 0px 0px 10rpx; // txtStyle = "left:-"+disX+"px"; txtStyle = "false"; // if(disX>=delBtnWidth){ // //控制手指移動距離最大值為刪除按鈕的寬度 // txtStyle = "left:-"+delBtnWidth+"px"; // } } //獲取手指觸摸的是哪一個item var index = e.currentTarget.dataset.index; var list = that.data.bankList; //將拼接好的樣式設(shè)置到當(dāng)前item中 list[index].txtStyle = txtStyle; //更新列表的狀態(tài) this.setData({ bankList:list }); // console.log(this.data.bankList) } }, touchE: function (e) { console.log("touchE" + e); var that = this if (e.changedTouches.length == 1) { //手指移動結(jié)束后觸摸點(diǎn)位置的X坐標(biāo) var endX = e.changedTouches[0].clientX; //觸摸開始與結(jié)束,手指移動的距離 var disX = that.data.stX - endX; var delBtnWidth = that.data.delBtnWidth; //如果距離小于刪除按鈕的1/2,不顯示刪除按鈕 var txtStyle = disX > delBtnWidth/2 ? "true":"false"; //獲取手指觸摸的是哪一項(xiàng) var index = e.currentTarget.dataset.index; var list = that.data.bankList; list[index].txtStyle = txtStyle; //更新列表的狀態(tài) that.setData({ bankList:list }); } }, /*自定義方法--end */
感謝博文:https://www.jianshu.com/p/07c4ddf8a3d3
提供的思路和方法,以上多數(shù)js方法摘自此博文。當(dāng)然css的控制也是很重要的
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/1941.html
摘要:功能三滴滴費(fèi)用計(jì)算古人云細(xì)節(jié)決定成敗,一個良好的微信小程序往往就是一些細(xì)節(jié)打動人心,居然是模仿,雖做不到百分百,至少還是很希望一模一樣。 最近時常感嘆道:時間總是那么的快,轉(zhuǎn)瞬即逝。對于像我這種剛?cè)腴T的小生來講,技術(shù)每天都在更新,框架也層出不窮,有時候還沒弄懂這個知識大牛們又推出了更好的技術(shù)。當(dāng)然學(xué)習(xí)好的技術(shù)也是十分重要的。但是在學(xué)習(xí)之后怎樣才能夠得到自己想要的呢,一個好的建議便是靜...
摘要:微信小程序如何實(shí)現(xiàn)左滑刪除的功能呢左滑刪除組件,基礎(chǔ)庫開始支持,如下圖所示。 微信小程序如何實(shí)現(xiàn)左滑刪除的功能呢 https://developers.weixin.qq.... https://developers.weixin.qq.com/miniprogram/dev/extended/weui/slideview.html Slideview左滑刪除組件,基礎(chǔ)庫 2.4.4 ...
摘要:全國政協(xié)委員原中國證監(jiān)會主席肖鋼亦表示,股新股發(fā)行制度改革,服務(wù)獨(dú)角獸企業(yè)上市,是新股發(fā)行核準(zhǔn)制度的創(chuàng)新。而從資本市場來看,在上述四大行業(yè)中,云計(jì)算得到了其廣泛關(guān)注,東方財(cái)富數(shù)據(jù)顯示,從年至今,市場共有份研報,平均每年出產(chǎn)篇。2月28日,有消息指出,證監(jiān)會發(fā)行部對相關(guān)券商作出指導(dǎo),包括生物科技、云計(jì)算、人工智能、高端制造在內(nèi)的4個行業(yè)中,如果有獨(dú)角獸的企業(yè)客戶,立即向發(fā)行部報告,符合相關(guān)規(guī)定...
摘要:當(dāng)我們手指向左滑動時,容器向左移動此時從容器之后顯示出來換句話說我們喜歡容器蓋住,使默認(rèn)在上方。接著我們給元素添加,這樣它就能獲得移動的距離。詳細(xì)案例請搜索微信小程序魔都源碼地址 直接進(jìn)入正題,我們需要做的就是通過手指滑動列表項(xiàng)后,右側(cè)出現(xiàn)刪除;比如說像這樣:showImg(https://segmentfault.com/img/remote/1460000017022935); 向...
閱讀 724·2023-04-25 19:43
閱讀 3921·2021-11-30 14:52
閱讀 3794·2021-11-30 14:52
閱讀 3859·2021-11-29 11:00
閱讀 3790·2021-11-29 11:00
閱讀 3882·2021-11-29 11:00
閱讀 3562·2021-11-29 11:00
閱讀 6138·2021-11-29 11:00