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

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

  1. 微信小程序左滑删除功能

    效果图如下: wxml代码: <view class="container"> <view class="touch-item {{item.isTou ...

  2. 微信小程序左滑删除

    <view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index=&qu ...

  3. 运用wxs制作微信小程序左滑功能和跳转,性能更优越

    锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...

  4. 微信小程序左滑显示按钮demo

    wxml结构(删除部分代码): <view class="chapter-item" wx:for="{{klgData}}" data-index=&q ...

  5. 微信小程序 confirm(删除提示)提示框,询问框,小程序操作成功提示后跳转

    微信小程序删除处理 没有 confrim 那怎么实现这个效果呢 可以使用小程序里的模态框 代码: wx.showModal({ title: '提示', content: '确定要删除吗?', suc ...

  6. 微信小程序实现滑动删除效果

    在一些app中,随处可见左滑动的效果,在微信小程序中,官方并未提供相关组件,需要我们自己动手写一个类似的效果 下面仅列举出核心代码,具体的优化需要根据你自身的需求 <view class='li ...

  7. 微信小程序:如何删除所有的console.log?

    使用vscode正则匹配,手动去除 1.用vscode打开微信小程序项目 2.Edit-----replace in Files 1. console.log()加了分号 console\.log\( ...

  8. 微信小程序开发中如何实现侧边栏的滑动效果?

    原文链接:https://mp.weixin.qq.com/s/7CM18izpZqf0oc0D75IGmQ 1 概述 在手机应用的开发中侧边栏滑动是很常见的功能,当然在小程序中也不会例外,很多特效还 ...

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

    终于等到公司开发小程序了,学习的时候不觉得有什么,实际开发就会出现各种问题. 今天第一天开发就遇到问题了. 项目需求,要一个平时的nav导航栏,这玩意用jQuery两行代码解决了,可是小程序不允许操作 ...

随机推荐

  1. Python学习日记(九) 装饰器函数

    1.import time a.time.time() 获取到当前的时间,返回值为浮点型 import time print(time.time()) #1565422783.6497557 b.ti ...

  2. 【scala】scala安装测试

    下载安装scala:scala-2.13.1.tgz 解压: [hadoop@hadoop01 ~]$ tar -zxvf scala-2.13.1.tgz 查看目录: [hadoop@hadoop0 ...

  3. tornado项目工程

    项目模块基本架构如下: -------------application.py import tornado.web from views import index, login import con ...

  4. docker安装之mariadb

    https://hub.docker.com/_/mariadb?tab=description Supported tags and respective Dockerfile links 10.4 ...

  5. 基于h5+的微信登录,hbuilder打包

    1.打开app项目的manifest.json的文件,选择模块权限配置,将OAuth(登录鉴权)模块添加至已选模块中 2.选择SDK配置,在plus.oauuth·登录鉴权中,勾选□ 微信登录,配置好 ...

  6. 图表可视化highcharts和百度的echarts

    前端数据可视化插件有很多,有 Highcharts(https://www.hcharts.cn/) Echarts(http://echarts.baidu.com/) D3(https://d3j ...

  7. JUC-10-ReadWriteLock读写锁

    ReadWriteLock同Lock一样也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个是只读的锁,一个是写锁  

  8. oracle 查询表重复数据 并 删除保留一条

    语法:select count(字段名),字段名  from  表名 group by 字段名 having count(字段名)>1 实例: select  count(name),name ...

  9. Oracle CAST() 函数 数据类型的转换

    CAST()函数可以进行数据类型的转换. CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔. 以下例子均通过本人测试. 一.转换列或值 语法:cast( 列名/值 as 数据类 ...

  10. 使用jquery修改display属性

    var show = $('#test').css('display'); $('#test').css('display',show =='block'?'none':show); 这段代码通过判断 ...