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

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) { } })
微信小程序左滑删除未操作有复位效果的更多相关文章
- 微信小程序左滑删除功能
效果图如下: wxml代码: <view class="container"> <view class="touch-item {{item.isTou ...
- 微信小程序左滑删除
<view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index=&qu ...
- 运用wxs制作微信小程序左滑功能和跳转,性能更优越
锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...
- 微信小程序左滑显示按钮demo
wxml结构(删除部分代码): <view class="chapter-item" wx:for="{{klgData}}" data-index=&q ...
- 微信小程序 confirm(删除提示)提示框,询问框,小程序操作成功提示后跳转
微信小程序删除处理 没有 confrim 那怎么实现这个效果呢 可以使用小程序里的模态框 代码: wx.showModal({ title: '提示', content: '确定要删除吗?', suc ...
- 微信小程序实现滑动删除效果
在一些app中,随处可见左滑动的效果,在微信小程序中,官方并未提供相关组件,需要我们自己动手写一个类似的效果 下面仅列举出核心代码,具体的优化需要根据你自身的需求 <view class='li ...
- 微信小程序:如何删除所有的console.log?
使用vscode正则匹配,手动去除 1.用vscode打开微信小程序项目 2.Edit-----replace in Files 1. console.log()加了分号 console\.log\( ...
- 微信小程序开发中如何实现侧边栏的滑动效果?
原文链接:https://mp.weixin.qq.com/s/7CM18izpZqf0oc0D75IGmQ 1 概述 在手机应用的开发中侧边栏滑动是很常见的功能,当然在小程序中也不会例外,很多特效还 ...
- 微信小程序添加、删除class’
终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题. 今天第一天开发就遇到问题了. 项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作 ...
随机推荐
- 2013.4.30 - KDD第十二天
早上来实验室,本来打算向秦师兄要文献的,不过秦师兄上午不在,所以就没有联系他.于是就开始调试郑茂的代码,发现原来那个itoa函数不是标准库里面 的,所以可能只有windows上可以用.然后我就在打电脑 ...
- vue-(过滤器,钩子函数,路由)
1.局部过滤器 在当前组件内部使用过滤器,修饰一些数据 //声明 filters:{ '过滤器的名字':function(val,a,b){ //a 就是alax ,val就是当前的数据 } } // ...
- 零基础python教程-用Python设计你的第一个小游戏
学以致用,既然学习了python就要让它来实现我们想做的东西,这次咱就用python来做个简单小游戏,在实践中不断成长. 1.游戏代码: 输入数字,来猜测原作者心中所想的数字,猜中夸你,猜不中不夸你, ...
- wait,waitpid学习测试
用man wait学习wait waitpid的使用 wait()函数功能:wait()函数使父进程暂停执行,直到它的一个子进程结束为止,该函数的返回值是终止运行的子进程的PID. 参数status所 ...
- 使用SAXReader对XML进行操作
该例子主要使用SAXReader对XML进行操作,browse.xml是Ango框架里面的XML文件 采用两种方法,第一种的全部是iterator,另外一种采用了部分的for each 代码如下 pr ...
- 求序列A中每个数的左边比它小的数的个数(树状数组)
给定一个有N个正整数的序列A(N<=10^5,A[i]<=10^5),对序列中的每一个数,求出序列中它左边比它小的数的个数. 思路:树状数组的经典应用(裸题) #include <i ...
- scanf()函数的调用:编写求正方形面积的通用程序
#include<stdio.h>void main(){ int a, area; scanf("%d",&a); //等待用户从键盘输入一个整数// are ...
- MYSQL 常见引擎
Mysql常见的引擎 常用的引擎是:Innodb和Myiasm这两种引擎: innodb: 提供了对事务的ACID操作,还提供了行级锁和外键约束,,他的优势就是处理大量数据,在msql启动的时候, ...
- 2:tomcat配置优化
一.Tomcat配置优化 1.Tomcat配置调优 主要调优内容 增加最大连接数 调整工作模式 启用gzip压缩 调整JVM内存大小 作为Web时,动静分离 合理选择垃圾回收算法 尽量使用较新JDK版 ...
- MAC OSX下终端通过NTLM验证,通过代理上网(花了一天时间才解决这个)
MAC OSX下终端通过NTLM验证,通过代理上网 公司网络限制如下: 公司通过代理来控制内网用户访问外网的权限.用户名和密码为域用户,采用的验证方式是NTLM(用的是foreFront TMG) 遇 ...