微信小程序左滑删除未操作有复位效果

Posted fps2tao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序左滑删除未操作有复位效果相关的知识,希望对你有一定的参考价值。

 

技术图片

1、wxml

<!--pages/test/test.wxml-->
<view class="page">

<movable-area class="m_a" wx:for="plist" wx:key="*this" wx:for-index="id" >
  <movable-view class="data_list" direction="horizontal" inertia="true"  x="item.leftx" out-of-bounds="true"  bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" data-index="id" >

   <view  class="d_box">
    <view class="data">item.title</view>
    <view>删除</view>
   </view>
  </movable-view>
</movable-area>

</view>

2.wxss

/* pages/test/test.wxss */
.page
  width: 100vw;
  height: 100vh;

.m_a
  width: 100%;
  height: 200rpx;
  border: 1rpx solid gray; 

.data_list
  height: 200rpx;
  width: 120%;
  border: 1rpx solid red;

.d_box
  display: flex;
  justify-content: flex-start;
  justify-items: center;
  height: 100%;

.data
  width: 100vw;
  background: red;

3.js

// pages/test/test.js
Page(

  /**
   * 页面的初始数据
   */
  data: 
    plist: [ "title": "内容内容13131", "leftx": 0 ,  "title": "asdasd内容13131", "leftx": 0 ,  "title": "a是sd内容13131", "leftx": 0 ,  "title": "as水电费多个d内容13131", "leftx": 0 ],
    pcontrolWidth: 200,
  ,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) 

  ,

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () 

  ,

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () 

  ,

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () 

  ,


  /**
     * 触摸开始
     */
  touchS: function (e) 
    let index = e.currentTarget.dataset.index;
    //遍历复位
    this.data.plist.forEach(function (item, key) 
      if (key != index) 
        item.leftx = 0;
      

    );
    //复位后,赋值
    this.setData(
      plist: this.data.plist,
    );

    if (e.touches.length == 1) 
      this.setData(
        //设置触摸起始点水平方向位置
        startX: e.touches[0].clientX
      );
    


  ,
  /**
   * 触摸移动
   */
  touchM: function (e) 
    console.log(e);
    let index = e.currentTarget.dataset.index;
    var endX = e.touches[0].clientX;
    var disX = this.data.startX - endX;
    var pcontrolWidth = this.data.pcontrolWidth;
    var left = 0;
    if (disX <= 0) 
      left = 0;
     else if (disX > 0) 
      left = disX;
      if (disX >= pcontrolWidth) 
        //控制手指移动距离最大值为删除按钮的宽度
        left = pcontrolWidth;
      
    

    this.data.plist[index].leftx = -left;
    this.setData(
      plist: this.data.plist,
    );
    console.log(this.data.plist);

  ,
  /**
   * 触摸结束
   */
  touchE: function (e) 

  


)

 

以上是关于微信小程序左滑删除未操作有复位效果的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序左滑执行操作

微信小程序滴滴中银行卡管理模块左滑出现删除和编辑的代码实现

微信小程序购物车 滑动删除效果

微信小程序数据助手怎么授权管理 小程序数据助手怎么取消授权

微信小程序源码下载(200多个)

微信小程序怎么写显示和隐藏效果