*小程序如何实现左滑删除效果*

左滑删除这个效果在很多移动端APP上都有体现,很多用户也都养成了这样的习惯,在开发小程序过程中,自己动手,实现这个左滑删除的效果了。

实现效果

1.列表中侧滑删除
2.删除按钮不同时存在

分析

1.需要一个左边正常内容块,然后右边删除块使用定位移到最右侧隐藏,删除按钮通过status来操纵 left 属性的值来实现像左移动。
2.当手指触摸的时候,获取到起始坐标,通过bindtouchstart这个事件我们可以获得用户刚点击(手指还未抬起)时的坐标。
3.滑动时,获取到最后停留的坐标,通过bindtouchmove我们可以一直获取当前的坐标(用户手指一直在屏幕上滑动时)。因此,我们只需要得到x轴上的移动的前后坐标相减是正数,就是向左移动。
4.当有一个删除显示时,其他删除不显示,可以通过遍历改变status值

1.wxml代码块

    <view class="box" wx:for="{{arr}}" wx:key="index">
      <view class="item {{item.status ? '' :'active'}}">
        <view class="content"  data-index="{{index}}" bindtouchstart="touchS" bindtouchmove="touchM">
          <view class="name">
            {{item.name}}
          </view>
          <view>
             {{item.content}}
          </view>
        </view>
        <view class="del-button" data-index="{{index}}" bindtap="del">删除</view>
      </view>
    </view>

2.wxss代码块

 .box{
 height: 100%;
 border-bottom: 2rpx solid #d9d9d9;
}
.item{
 position:relative;
 top: 0;
 width: 100%;
 height: 150rpx;
 padding: 0;
}
.item .content{
 margin-left: 20rpx;
 background-color: #ffffff;
 height: 100%;
 position: relative;
 display: flex;
 flex-flow: column;
 justify-content: center;
 left: 0;
 width: 100%;
 transition: all 0.3s;
}
.item .name{
 margin-bottom: 15rpx;
}
.item .del-button {
 position: absolute;
 right: -138rpx;
 width: 140rpx;
 height: 100%;
 background-color: #df3448;
 color: #fff;
 top: 0;
 text-align: center;
 display: flex;
 justify-content: center;
 align-items: center;
 transition: all 0.3s;
 font-size: 24rpx;
}
.item.active .content{
  left: -140rpx; 
}
.item.active .del-button{
 right: 0;
}

3.JS控制

data
arr: [
      {
        name:'name',
        content:'content',
        status: true
      },
      {
        name: 'name',
        content: 'content',
        status: true
      }
 ]
touch事件
touchM(e) {
    // 获得当前坐标
    this.currentX = e.touches[0].clientX;
    this.currentY = e.touches[0].clientY;
    //刚点击的坐标 - 最后停止的坐标 > 0 说明左滑
    const x = this.startX - this.currentX; //横向移动距离
    if (x > 10) {
      //向左滑是显示删除
      this.setData({
        //只让你当前滑动的这个元素的状态改变
        [`arr[${e.currentTarget.dataset.index}].status`]: false
      })
    } else if (x < -10) {
      //向右滑
      this.setData({
        [`arr[${e.currentTarget.dataset.index}].status`]: true
      })
    }

  },
  touchS(e) {
    // 获取手指点击的(X,Y)坐标
    // 获得起始坐标
    this.startX = e.touches[0].clientX;
    this.startY = e.touches[0].clientY;
    this.data.arr.forEach((item, index) => {
      if (index !== e.currentTarget.dataset.index) {
        item.status = true
        //遍历改变status值,让非当前点击下标的元素,不显示删除
      }
    })
    this.setData({
      //重新赋值,渲染到页面
      arr: this.data.arr
    })
  },
删除事件
del(val){
    let that = this
    let index = val.currentTarget.dataset.index
    wx.showModal({
      title: '提示',
      content: '确认删除吗',
      success(res) {
        if (res.confirm) {
          console.log('用户点击确定')
          let arr= that.data.arr
          arr.splice(index, 1)
          that.setData({
            arr: arr
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },

效果

效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351