在一些app中,随处可见左滑动的效果,在微信小程序中,官方并未提供相关组件,需要我们自己动手写一个类似的效果

下面仅列举出核心代码,具体的优化需要根据你自身的需求

<view class='list' wx:if="{{list.length > 0}}">
<block wx:for="{{list}}" wx:key="list">
<view class='list_item' bindtap='toResult' data-num='{{item.num}}' data-com='{{item.com}}' bindtouchstart="touchstart" bindtouchmove="touchmove">
<view class='list_item_img'>
<image src="../../images/{{item.com}}.png"></image>
</view>
<view class='list_item_num {{touchShow ? "touch":""}}'>
{{item.express_text}}<text>|</text>{{item.num}}
</view>
<view class='touchdel' wx:if="{{touchShow}}">
删除
</view>
</view>
</block>
</view>

对上述代码做出几点说明:

  1. list 是一个数组,数据源是在对应的页面的js文件里
  2. 主要利用到微信小程序内置的两个事件touchstart和touchmove
  3. 实现原理:通过监听touchstart和touchmove事件,获取clientX,判断clientX是否打到某个阈值,来决定隐藏或显示“删除“ 按钮
.list_item .list_item_num {
width: 580rpx;
height: 100rpx;
line-height: 100rpx;
text-align: right;
font-size: 30rpx;
}
.list_item .touch {
width: 480rpx;
}
.list_item .touchdel {
width: 120rpx;
height: 100rpx;
line-height: 100rpx;
text-align: center;
font-size: 30rpx;
background: #f55757;
color: #ffffff;
}

上面是相关的css样式

下面是js相关代码(核心)

data: {
list: [],
startX:0,
endX:0
},
touchstart: function (e) {
var startX = e.changedTouches[0].clientX;
console.log('start'+startX);
this.setData({
startX: startX
})
},
touchmove: function (e) {
var endX = e.changedTouches[0].clientX;
console.log('end' + endX);
if(Math.abs(parseInt(endX) - parseInt(this.data.startX)) > 80) {
this.setData({
touchShow: parseInt(endX) - parseInt(this.data.startX) < 0 ? true:false,
endX:endX
})
}
},

微信小程序实现滑动删除效果的更多相关文章

  1. 微信小程序缓存滑动距离,当页面浏览到一定位置,滑动其他页面后返回该页面记录之前的滑动距离

    15.微信小程序缓存滑动距离 我们在浏览页面的时候,然后左滑或者右滑到新的页面,等返回此页面,我们希望可以记录上次滑动的距离 虽然这个实现起来并不难,但是会遇到一些坑,因为scroll-view的组件 ...

  2. 微信小程序左右滑动切换页面示例代码--转载

    微信小程序——左右滑动切换页面事件 微信小程序的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend. 这三个事件最重要的属性是pageX和pageY,表示X, ...

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

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

  4. 微信小程序手势滑动卡片案例

    最近工作中有项目要使用微信小程序技术进行开发,其中一项功能困扰了我很久,卡片滑动动效以及手势识别.经过一番研究和参考,现在把成果展示.记录自己踩到的坑,如果大家有需要,也可以帮助到大家. 效果图: 首 ...

  5. 微信小程序-滚动消息通知效果

    这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组件在小程序中是滑块视图容器. 我们通过vertical属性(默认为false,实现默认左右滚动)设置 ...

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

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

  7. 微信小程序左右滑动切换图片酷炫效果

    开门见山,先上效果吧!感觉可以的用的上的再往下看. 心动吗?那就继续往下看! 先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了. < ...

  8. 微信小程序左右滑动切换图片酷炫效果(附效果)

    开门见山,先上效果吧!感觉可以的用的上的再往下看. 心动吗?那就继续往下看! 先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了. < ...

  9. 微信小程序实现淡入淡出效果(页面跳转)

    //目前小程序没有fadeIn(),fadeOut()方法所以还是本方法手写  <!--wxml--><!--蒙版(渐出淡去效果)--><view class=" ...

随机推荐

  1. 「CF 961G」Partitions

    题目链接 戳我 \(Solution\) 首先,这个直接推式子.自己推去 所以我们来想一想一些巧妙的方法 \(|S|\sum w_i\) 可以转化为:划分好集合后,每个点都对当前点有\(w_i\)的贡 ...

  2. 「CQOI 2014」危桥

    题目链接 戳我 \(Solution\) 首先往返\(n\)次等价于走\(2n\)次. 将 \(a_n*2,b_n*2\); 那么我们直接按原图构图,然后: \((S,a_1,a_n),(S,b_1, ...

  3. RedisTemplate 用法

      Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串).List(列表).Set(集合).Hash(散列)和 Zset(有 ...

  4. java web项目启动时浏览器路径不用输入项目名称方法

    http://blog.csdn.net/qq542045215/article/details/44923851

  5. 项目配置 xml文件时 报错提示(The reference to entity "useSSL" must end with the ';' delimiter.)

    这次在配置xml文件时,出现错误提示( The reference to entity “useSSL” must end with the ‘;’ delimiter.) 报错行为 <prop ...

  6. MSO Transponder 页面开发思路

    1. 确定Transponder开发页面分类,定义负责模块 2. 定义模块页面布局 3. 选择页面各数据对应的控件类型 4. 选定控件对应set/get所用方式 快捷键链接设置: http://www ...

  7. java JIT

    JVM 即时编译器即时编译器 (Just In Time Compiler) 简称JIT JAVA程序最初是通过解释器 (Interpreter) 进行解释执行的,当 JVM 发现某个方法或代码块运行 ...

  8. UVA 816 -- Abbott's Revenge(BFS求最短路)

     UVA 816 -- Abbott's Revenge(BFS求最短路) 有一个 9 * 9 的交叉点的迷宫. 输入起点, 离开起点时的朝向和终点, 求最短路(多解时任意一个输出即可).进入一个交叉 ...

  9. yum源相关

    yum软件仓库默认配置文件/etc/yum.conf,此文件定义了yum在线下载的rpm包存放位置及下载后是否保存. [root@localhost ~]# head /etc/yum.conf[ma ...

  10. leetcode 78子集

    采用回溯法:对于例子图解执行过程如下,其中向上的分支为向下递归,向下的分支为第二次递归,因此已经push了对应的下标的值,则从根到右边连起来的路径即为组合 由于整个过程类似于二叉树的中序遍历,因此代码 ...