小程序 — 實(shí)現(xiàn)左滑刪除效果(列表)③

前言:實(shí)現(xiàn)完整的列表左滑刪除功能。
GitHub:https://github.com/Ewall1106/miniProgramDemo

1、列表渲染

首先我們初始化一個(gè)list列表并為其添加數(shù)據(jù),這個(gè)列表有兩個(gè)值分別為標(biāo)題文字title和初始的偏移量x

list: [
  {
    x: 0,
    title: '這里是內(nèi)容區(qū)域0'
  },
  {
    x: 0,
    title: '這里是內(nèi)容區(qū)域1'
  },
  {
    x: 0,
    title: '這里是內(nèi)容區(qū)域2'
  },
  {
    x: 0,
    title: '這里是內(nèi)容區(qū)域3'
  }
],
// 記錄當(dāng)前偏移量
currentX: 0

然后我們在頁面上循環(huán)渲染這個(gè)列表,這里就不多說了。

2、事件處理

(1)首先我們要給touchend事件傳遞一個(gè)參數(shù),參數(shù)值為當(dāng)前用戶觸摸列表的索引值,讓我們可以知道,到底用戶是觸摸了哪個(gè)列表項(xiàng)。
(2)然后我們要在觸摸事件結(jié)束的時(shí)候判斷偏移量的位置

handleTouchend(idx, e) {
  if (this.currentX < -46) {
    this.list[idx].x = -92;
    this.setData({
      list: this.list
    });
  } else {
    this.list[idx].x = 0;
    this.setData({
      list: this.list
    });
  }
}
  • 上面幾行代碼很重要,解決了這么一個(gè)問題:
    列表渲染的問題,由于js的限制,不能檢測到數(shù)組中值的變化,所以我們先改變了list數(shù)組項(xiàng)中的值,然后在用this.setData()重新賦值一遍,關(guān)于這個(gè)問題,可以看看vue中關(guān)于列表渲染的注意事項(xiàng),原理是一樣的:https://cn.vuejs.org/v2/guide/list.html#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9

(3)最后就是刪除功能的實(shí)現(xiàn)

同理我們也需要獲取用戶點(diǎn)擊刪除按鈕的索引值,然后進(jìn)行刪除,很簡單不多說,看代碼:

handleDelete(idx) {
  this.list.splice(idx, 1);
  this.setData({
    list: this.list
  });
}

3、小結(jié)

這就是我們實(shí)現(xiàn)左滑刪除效果的全部內(nèi)容了,利用了小程序的movable組件實(shí)現(xiàn)了大部分的功能,關(guān)于js主要是在處理列表渲染的時(shí)候,這里是個(gè)坑,其他就沒什么難點(diǎn)了,看看最后的效果圖吧:

最終效果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,208評論 3 119
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,011評論 2 59
  • 【注意】本文包含《四重奏》第六集劇透。 由于《四重奏》的緣故,坂元裕二在我心目中的編劇排行榜上超越了魔法特,上升到...
    瑪雅藍(lán)閱讀 640評論 2 1
  • 第一步 下載xgboost的package :https://www.lfd.uci.edu/~gohlke/py...
    Spytensor閱讀 466評論 0 0

友情鏈接更多精彩內(nèi)容