91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序如何實現滑動

發布時間:2020-07-31 10:46:47 來源:億速云 閱讀:558 作者:小豬 欄目:web開發

這篇文章主要為大家展示了微信小程序如何實現滑動,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

前言

本文使用動畫組件wx.createAnimation來實現滑動操作:

1. 左滑動顯示操作項區域;

2. 點擊操作項觸發相應方法;

3. 右滑動和點擊行收起操作項;

4. 點擊“刪除”并確定則刪除該條數據。

最終效果如下:

微信小程序如何實現滑動

實現過程

1. 文件index.wxml和index.wxss代碼如下,這一塊比較簡單,可自行查看,不做過多分析;

Tips:“詳情”、“取號”和“刪除”點擊觸發使用catchtap,阻止冒泡事件向上冒泡;

<view class="wrapper">
 <view class="container">
  <view class="list">
   <view class="line" bindtouchstart="touchstartX" bindtap="resetX" bindtouchmove="touchmoveX" bindtouchend="touchendX" animation="{{currentIndex === index &#63;animation : ''}}" data-index="{{index}}" wx:for="{{recordList}}" wx:key="id">
    <image class="icon-title" src="../../images/start_icon.png"></image>
    <view class="mes">
     <view class="title">{{item.title}}</view>
     <view class="date">預約時間:{{item.date}}</view>
     <view class="status">狀態:<text>{{item.status}}</text></view>
    </view>
    <view class="operation">
     <view class="detail" catchtap="openDetail">詳情</view>
     <view class="number" catchtap="getNumber">取號</view>
     <view class="delete" catchtap="deleteItem">刪除</view>
    </view>
   </view>
  </view>
 </view>
</view>
.container .line {
 display: flex;
 padding: 20rpx 30rpx;
 border-bottom: 2rpx solid #ebebeb;
 position: relative;
 cursor: pointer;
}
 
.container .line .icon-title {
 margin-top: 28rpx;
 width: 30rpx;
 height: 30rpx;
}
 
.container .line .mes {
 flex: 1;
 margin-left: 10rpx;
}
 
.container .line .mes .date, .container .line .mes .status {
 color: #9d9d9d;
 font-size: 24rpx;
 margin-top: 4rpx;
}
 
.status text {
 color: #fba500;
}
 
.operation {
 position: absolute;
 top: 0;
 right: -300rpx;
 height: 152rpx;
 text-align: center;
 color: #fff;
 line-height: 152rpx;
 display: flex;
}
 
.operation view {
 width: 100rpx;
}
 
.operation .detail {
 background-color: #018efb;
}
 
.operation .number {
 background-color: #fba500;
}
 
.operation .delete {
 background-color: #cfcfcf;
}

2. 文件index.js存放所有功能的邏輯代碼,下面主要分析幾個重點方法:

1)方法touchmoveX用于手指觸摸后移動時獲取移動距離,并根據移動距離動畫顯示操作項相應區域,使移動有即時效果;

2)方法touchendX用于手指觸摸動作結束時,如果移動距離達到100,則動畫顯示全部操作項區域;如果移動距離未達到100,則收起操作項區域;

3)方法deleteItem用于刪除該條數據。

let movedistance = 0;
Page({
 data: {
  currentIndex: 0, // 列表操作項的index
  recordList: [{ // 列表數據
   id: 1,
   title: '業務辦理01',
   date: '2020-04-21 10:30-12:00',
   status: '未取號'
  }, {
   id: 2,
   title: '業務辦理02',
   date: '2020-04-21 10:30-12:00',
   status: '未取號'
  }, {
   id: 3,
   title: '業務辦理03',
   date: '2020-04-21 10:30-12:00',
   status: '取號'
  }]
 },
 // 打開詳情頁
 openDetail() {
  console.log(this.data.currentIndex, '點擊詳情');
 },
 // 取號
 getNumber() {
  console.log(this.data.currentIndex, '點擊取號');
 },
 // 刪除數據
 deleteItem() {
  let that = this;
  let recordList = this.data.recordList;
  wx.showModal({
   title: '提示',
   content: '是否刪除該條數據?',
   success(res) {
    if (res.confirm) {
     that.slideAnimation(0, 500);
     recordList.splice(that.data.currentIndex, 1);
     that.setData({
      recordList: recordList
     });
    } else if (res.cancel) {
     console.log('用戶點擊取消')
    }
   }
  });
 },
 // 手指觸摸動作開始
 touchstartX(e) {
  this.setData({
   currentIndex: e.currentTarget.dataset.index
  });
  // 獲取觸摸X坐標
  this.recordX = e.touches[0].clientX;
 },
 // 點擊操作
 resetX() {
  this.slideAnimation(0, 500);
 },
 // 手指觸摸后移動
 touchmoveX(e) {
  let currentX = e.touches[0].clientX;
  movedistance = currentX - this.recordX; // 獲取移動距離
  this.slideAnimation(movedistance, 500);
 },
 // 手指觸摸動作結束
 touchendX() {
  let recordX;
  if (movedistance <= -100) { // 移動達到距離就動畫顯示全部操作項
   recordX = -300;
  } else if (movedistance >= -100) { // 移動未達到距離即還原
   recordX = 0;
  }
  this.slideAnimation(recordX, 500);
 },
 // 滑動動畫
 slideAnimation(recordX, time) {
  let animation = wx.createAnimation({
   duration: time,
   timingFunction: 'ease'
  });
  animation.translate(recordX + 'rpx', 0).step()
  this.setData({
   animation: animation.export()
  })
 },
 onLoad: function(options) {
  wx.setNavigationBarTitle({
   title: '銀行業務',
  });
  movedistance = 0; // 解決切換到其它頁面再返回該頁面動畫失效的問題
 }
})

以上就是關于微信小程序如何實現滑動的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

全南县| 曲松县| 东阿县| 池州市| 松潘县| 资讯| 崇信县| 准格尔旗| 西丰县| 大厂| 利辛县| 太白县| 平利县| 许昌县| 昌黎县| 仁布县| 白山市| 康马县| 化德县| 阳新县| 札达县| 和静县| 罗山县| 壤塘县| 垫江县| 新河县| 井陉县| 涟水县| 阿城市| 漳州市| 监利县| 洛宁县| 谷城县| 马鞍山市| 凌源市| 酉阳| 名山县| 文登市| 康乐县| 都匀市| 宜春市|