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

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) {

  }

})

原文地址:https://www.cnblogs.com/fps2tao/p/11390024.html

时间: 2024-11-12 19:53:40

微信小程序左滑删除未操作有复位效果的相关文章

微信小程序添加、删除class’

终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题. 今天第一天开发就遇到问题了. 项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作dom啊: 折腾一个多小时最终找到两种方法,分享给大家: 第一种比较直接但是,不适合多个操作: 1,第一种感觉比较傻 <view class="{{num==0 ? 'active':''}}" bindtap="click1">1</view>

微信小程序问题2:未配置

app.json 中未配置当前页面 pages/swipertest/swipertest 请检查后重试.console.error(`PAGE DEFINE ERRORapp.json 中未配置,当前页面 pages/swipertest/swipertest 请检查后重试. 原因:app.json中路径有问题 应该把此处/去掉.

微信小程序里自定义组件,canvas组件没有效果

methods: { /** * el:画圆的元素 * r:圆的半径 * w:圆的宽度 * 功能:画背景 */ drawCircleBg: function (el, r, w) { const ctx = wx.createCanvasContext(el); ctx.setLineWidth(w);// 设置圆环的宽度 ctx.setStrokeStyle('#E5E5E5'); // 设置圆环的颜色 ctx.setLineCap('round') // 设置圆环端点的形状 ctx.begi

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

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

微信小程序右到左联动

上一篇说了小程序的左到右的联动效果的实现,这个还不算太难,真正为难人的是右边滑动左边的选项对应切换的效果,咱今天就讲一下.话不多说先看效果. 右左联动.gif 一.关键技术: (1) 小程序 wxss 中使用 rpx,而 js 中 scrollTop 获取到的值是 px,所以存在rpx 转 px 的问题.以 iPhone6 为基准,转换公式: // percent 为当前设备1rpx对应的px值 var percent = res.windowWidth / 750; 详情参考:WXSS尺寸单位

微信小程序最新开发资源汇总,对学习微信小程序的新手有一定帮助

微信小程序最新开发资源汇总,希望给想学习或正在学习微信小程序开发的同学们带来一定帮助,汇总的小程序资源有点繁杂,各种类型的小程序demo都有,大家可以选择自己想要的demo进行下载学习.这些微信小程序资源大多是整理自github,如果可以,希望大家能够给github上的原作者一颗star,感谢原作者的无私奉献. 这里整理的是资源的原帖子,下载链接也在帖子里,当然本人也只体验了部分demo,有兴趣的同学可以都下载试试. 下载地址: 仿微信聊天,朋友圈小程序源码wepy框架开发的小程序商城源码,功能

微信小程序之学习

微信小程序是个很神奇的东西,为什么,因为它没有document对象,没有window对象, what???这尼玛不是巨坑吗. 前端的两大重点居然没有,那页面咋写,操作都不行啊. 其实不是这样的,微信小程序有一套它自己的操作,就是在页面写好, 可以写好html模板,然后直接在标签上绑定好各种事件,还有它也有自己的 容器标签,可以实现各种功能,这个小程序是不是很独立特行... 其实微信小程序就是有一套自己的编写方式,有点脱离旧的前端编写方式,完全使用很潮流的 前端编写方式,为什么这样说,因为,前端现

微信小程序~下拉刷新PullDownRefresh

一.onPullDownRefresh回调 代码: // http://itlao5.com onPullDownRefresh: function () { console.log('onPullDownRefresh') this.queryData(id) }, 二.enablePullDownRefresh支持 然而=下拉触发不了js回调,需要再json中配置支持下拉刷新,即: "enablePullDownRefresh": true // 请注意是true,不是"

微信小程序之轮播图

今天记录一下微信小程序开发时,轮播图的效果时怎么实现的.话不多说,直接上代码: <!-- 1. 首页轮播图 --> <view> <swiper class="my-swiper" autoplay="true" indicator-dots="true" indicator-active-color="#fff" circular="true"> <block w