麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 11:08:19
字體:
來源:轉載
供稿:網友

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

效果:

思路:

一、用相對定位和絕對定位,列表放在上層,刪除按鈕放在下層(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  }); } },})

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色av一区二区三区 | 国产宾馆3p国语对白 | 亚洲成人福利在线观看 | 国产美女视频一区二区三区 | 国产亚洲精品久久久久婷婷瑜伽 | 欧美成人精品一区二区三区 | 亚洲国产精品高潮呻吟久久 | 久久久精品视频网站 | 黄网站免费观看视频 | 国产精品视频成人 | 鲁丝一区二区三区不属 | 国产一区二区免费看 | 欧美性色生活片免费播放 | 黄色av网站在线观看 | 视频一区二区久久 | 国产品久久 | 看免费黄色一级片 | 欧洲成人一区二区 | 精品久久久av | 美女扒开腿让男生桶爽网站 | av不卡毛片 | 欧美淫交| 日本视频免费看 | 久久久久久久久国产 | 成人毛片100部 | 国产一区二区午夜 | 毛片一级免费看 | 中国免费黄色 | 羞羞视频入口 | 一级黄色淫片 | av电影观看 | 国产精品视频中文字幕 | 久久精品中文字幕一区二区三区 | 911精品影院在线观看 | 97se亚洲综合在线韩国专区福利 | 久草在线观看福利视频 | 亚洲电影在线播放 | 亚洲精品wwww | 久久亚洲国产精品 | 国产精品久久久久久久久久大牛 | 亚洲精品欧美二区三区中文字幕 |