<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        微信小程序實現收貨地址左滑刪除

        來源:懂視網 責編:小OO 時間:2020-11-27 21:53:15
        文檔

        微信小程序實現收貨地址左滑刪除

        本文實例為大家分享了微信小程序實現收貨地址左滑刪除的具體代碼,供大家參考,具體內容如下:效果。思路。一、用相對定位和絕對定位,列表放在上層,刪除按鈕放在下層(z-index不要為負)。二、觸摸事件判斷用戶是否左滑,有 bindtouchstart,bindtouchmove,bindtouchend 三個觸摸事件。1、bindtouchstart 記錄觸摸開始的點。開始點的坐標在 e.touches[0] 中,這是相對于屏幕的,也就是以屏幕左上方為原點。2、bindtouchmove記錄觸摸移動時的點。同上。3、bindtouchmove記錄觸摸結束的點。結束點的坐標在 e.changedTouches[0] 中。
        推薦度:
        導讀本文實例為大家分享了微信小程序實現收貨地址左滑刪除的具體代碼,供大家參考,具體內容如下:效果。思路。一、用相對定位和絕對定位,列表放在上層,刪除按鈕放在下層(z-index不要為負)。二、觸摸事件判斷用戶是否左滑,有 bindtouchstart,bindtouchmove,bindtouchend 三個觸摸事件。1、bindtouchstart 記錄觸摸開始的點。開始點的坐標在 e.touches[0] 中,這是相對于屏幕的,也就是以屏幕左上方為原點。2、bindtouchmove記錄觸摸移動時的點。同上。3、bindtouchmove記錄觸摸結束的點。結束點的坐標在 e.changedTouches[0] 中。

        本文實例為大家分享了微信小程序實現收貨地址左滑刪除的具體代碼,供大家參考,具體內容如下

        效果:

        思路:

        一、用相對定位和絕對定位,列表放在上層,刪除按鈕放在下層(z-index不要為負)。

        二、觸摸事件判斷用戶是否左滑,有 bindtouchstart,bindtouchmove,bindtouchend 三個觸摸事件。

        1、bindtouchstart 記錄觸摸開始的點。開始點的坐標在 e.touches[0] 中,這是相對于屏幕的,也就是以屏幕左上方為原點。

        2、bindtouchmove 記錄觸摸移動時的點。同上。

        3、bindtouchmove 記錄觸摸結束的點。結束點的坐標在 e.changedTouches[0] 中。

        通過1、2方法,獲取到觸摸開始點、移動距離,就可以讓列表層隨觸摸點左右移動;

        通過3方法,獲取最終點,判斷與開始點的距離,如果這個距離小于刪除按鈕的一半,則還原列表層

        代碼:

        1、wxml

        <view wx:for="{{address}}" style='position: relative;'>
         <!-- 列表層 -->
         <view class='list' style='{{item.txtStyle}}' bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" data-index='{{index}}'>
         <!-- 收貨信息 -->
         <view class='info' bindtap='select_addr' data-id="{{item.id}}">
         <view>
         {{item.name}} 
         <span class="phone">{{item.phone}}</span>
         <span wx:if="{{item.default == 1}}" class='def'>默認</span>
         </view>
         <view>
         {{item.province}} {{item.address}}
         </view>
         </view>
         <!-- 編輯圖標 -->
         <view class='edit' bindtap='edit' data-id='{{item.id}}' >
         <image src='/image/edit.png'></image>
         </view>
         </view>
         <!-- 刪除按鈕 -->
         <view class="delete" data-id="{{item.id}}" data-index='{{index}}' bindtap="delItem" >刪除</view>
        </view>
         
        <view class='add' bindtap='add'>添加地址</view>

        2、wxss

        page{
         background-color: #F0EFF5;
        }
        .list{
         position: relative;
         z-index: 2;
         overflow: hidden;
         background-color: white;
         margin-top: 2rpx;
         padding: 25rpx;
         display: flex;
         align-items: center;
         justify-content:space-between;
         min-height: 150rpx;
        }
        .delete{
         position: absolute;
         top:0rpx;
         background-color: #e64340;
         width: 180rpx;
         text-align: center;
         z-index: 1;
         right: 0;
         color: #fff;
         height: 100%;
         display: flex;
         align-items: center;
         justify-content: center;
        }
        .info{
         display: flex;
         flex-direction: column;
         align-items: flex-start;
        }
        .info view:first-child{
         text-align: center;
         font-size: 35rpx;
         margin-bottom: 10rpx;
        }
        .info view:nth-child(2){
         font-size: 30rpx;
         margin-bottom: 10rpx;
        }
        .def{
         font-size: 30rpx;
         border:1rpx solid red;
         border-radius: 5rpx;
         padding:0 10rpx;
         color: red;
         margin-right: 10rpx;
        }
        .phone{
         color:gray;font-size:30rpx;margin: 0 20rpx;
        }
        .edit{
         padding:40rpx;
        }
        .edit image{
         width: 40rpx;
         height: 40rpx;
         margin-left:10rpx;
        }
        .add{
         width: 650rpx;
         border: 2rpx solid gray;
         height: 100rpx;
         line-height: 100rpx;
         text-align: center;
         font-size: 30rpx;
         border-radius: 10rpx;
         position: fixed;
         bottom: 50rpx;
         left: 50rpx;
         background-color: white;
        }

        3、JS

        Page({
         data: {
         address:[
         {
         id: "1",
         address: "1單元222號",
         name: "啦啦啦",
         default:"1",
         phone: "12222223333",
         province: "河北省 石家莊市 長安區",
         txtStyle: "",
         },
         {
         id: "2",
         address: "2幢2樓222號",
         name: "嚯嚯嚯",
         default: "0",
         phone: "12345678900",
         province: "浙江省 杭州市 市轄區",
         txtStyle: "",
         },
         {
         id: "3",
         address: "1幢1單元",
         name: "哈哈哈",
         default: "0",
         phone: "18208350499",
         province: "河北省 石家莊市 新華區",
         txtStyle: "",
         }
         ],
         delBtnWidth: 180
         },
         
         onLoad: function (options) {
         //獲取收貨地址 省略
         },
         
         edit: function (e) {
         //編輯收貨地址 省略
         },
         
         add: function () {
         //增加收貨地址 省略
         },
         
         delItem: function (e) {
         var id = e.currentTarget.dataset.id;
         var index = e.currentTarget.dataset.index;
         this.data.address.splice(index, 1);
         this.setData({
         address: this.data.address
         })
         },
         
         touchS: function (e) {
         if (e.touches.length == 1) {
         this.setData({
         //設置觸摸起始點水平方向位置
         startX: e.touches[0].clientX
         });
         }
         },
         
         touchM: function (e) {
         if (e.touches.length == 1) {
         //手指移動時水平方向位置
         var moveX = e.touches[0].clientX;
         //手指起始點位置與移動期間的差值
         var disX = this.data.startX - moveX;
         var delBtnWidth = this.data.delBtnWidth;
         var txtStyle = "";
         if (disX == 0 || disX < 0) {//如果移動距離小于等于0,文本層位置不變
         txtStyle = "left:0rpx";
         } else if (disX > 0) {//移動距離大于0,文本層left值等于手指移動距離
         txtStyle = "left:-" + disX + "rpx";
         if (disX >= delBtnWidth) {
         //控制手指移動距離最大值為刪除按鈕的寬度
         txtStyle = "left:-" + delBtnWidth + "rpx";
         }
         }
         //獲取手指觸摸的是哪一項
         var index = e.currentTarget.dataset.index;
         var list = this.data.address;
         list[index]['txtStyle'] = txtStyle;
         //更新列表的狀態
         this.setData({
         address: list
         });
         }
         },
         touchE: function (e) {
         if (e.changedTouches.length == 1) {
         //手指移動結束后水平位置
         var endX = e.changedTouches[0].clientX;
         //觸摸開始與結束,手指移動的距離
         var disX = this.data.startX - endX;
         var delBtnWidth = this.data.delBtnWidth;
         //如果距離小于刪除按鈕的1/2,不顯示刪除按鈕
         var txtStyle = disX > delBtnWidth / 2 ? "left:-" + delBtnWidth + "rpx" : "left:0rpx";
         //獲取手指觸摸的是哪一項
         var index = e.currentTarget.dataset.index;
         var list = this.data.address;
         var del_index = '';
         disX > delBtnWidth / 2 ? del_index = index : del_index = '';
         list[index].txtStyle = txtStyle;
         //更新列表的狀態
         this.setData({
         address: list,
         del_index: del_index
         });
         }
         },
        })

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        微信小程序實現收貨地址左滑刪除

        本文實例為大家分享了微信小程序實現收貨地址左滑刪除的具體代碼,供大家參考,具體內容如下:效果。思路。一、用相對定位和絕對定位,列表放在上層,刪除按鈕放在下層(z-index不要為負)。二、觸摸事件判斷用戶是否左滑,有 bindtouchstart,bindtouchmove,bindtouchend 三個觸摸事件。1、bindtouchstart 記錄觸摸開始的點。開始點的坐標在 e.touches[0] 中,這是相對于屏幕的,也就是以屏幕左上方為原點。2、bindtouchmove記錄觸摸移動時的點。同上。3、bindtouchmove記錄觸摸結束的點。結束點的坐標在 e.changedTouches[0] 中。
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲大尺码专区影院| 亚洲男人第一av网站| 亚洲av中文无码乱人伦在线观看| 青青视频观看免费99| 亚洲欧洲日韩国产一区二区三区 | 亚洲va精品中文字幕| 免费视频爱爱太爽了| 亚洲人xxx日本人18| 毛片大全免费观看| 国产成人人综合亚洲欧美丁香花| 韩国免费三片在线视频| 免费无码又爽又黄又刺激网站| 中文字幕第一页亚洲| a色毛片免费视频| 亚洲视屏在线观看| 性做久久久久久久免费看| 亚洲av日韩精品久久久久久a| 又大又硬又爽免费视频| 国产成人高清精品免费观看| 国产亚洲综合色就色| 色播精品免费小视频| 亚洲精品乱码久久久久久V| 亚洲精品国产高清不卡在线| 国产在线精品观看免费观看| 亚洲黄色免费网站| 免费无码不卡视频在线观看| 一区二区三区免费视频观看| 亚洲AV无码久久寂寞少妇| 最近高清国语中文在线观看免费| 国产精品亚洲色图| 亚洲卡一卡2卡三卡4卡无卡三| 嫩草影院免费观看| 久久国产精品免费一区| 亚洲一级毛片免费在线观看| 亚洲国产婷婷香蕉久久久久久| 国内少妇偷人精品视频免费| 亚洲国产夜色在线观看| 亚洲国产aⅴ综合网| 57pao国产成永久免费视频| 精品久久久久久亚洲中文字幕| 亚洲AV人人澡人人爽人人夜夜|