前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序 — 实现左滑删除效果②

小程序 — 实现左滑删除效果②

作者头像
Ewall
发布2018-09-30 10:23:19
1.1K0
发布2018-09-30 10:23:19
举报
文章被收录于专栏:vue学习vue学习vue学习

前言:这章我们为movable-view添加点击事件,完善左滑效果。 GitHub:https://github.com/Ewall1106/miniProgramDemo

1、 拖动事件

(1)在上一章中,我们给movable-view绑定了一个bindchange事件,事件名为onChange,这个事件是干吗的呢?

拖动过程中触发的事件,event.detail = {x: x, y: y, source: source},其中source表示产生移动的原因,值可为touch(拖动)、touch-out-of-bounds(超出移动范围)、out-of-bounds(超出移动范围后的回弹)、friction(惯性)和空字符串(setData)

事件绑定

(2)所以我们就可以利用这个事件做点事情了

  • 首先我们先定义三个初始化变量xcurrentX
data = {
  // x轴方向的偏移
  x: 0,
  // 当前x的值
  currentX: 0
};
  • 然后监听下拖动事件并赋值给currentX
handleMovableChange(e) {
    this.currentX = e.detail.x;
    this.$apply();
}

2、手指触摸事件

将当前的currentX赋值给x以定义偏移量。

methods = {
  handleMovableChange(e) {
    this.currentX = e.detail.x;
    this.$apply();
  },
  handleTouchend(e) {
    if (this.currentX < -46) {
      this.x = -92;
      this.setData({
        x: this.x
      });
    } else {
      this.x = 0;
      this.setData({
        x: this.x
      });
    }
  }
};

上面有几行代码很少但却是整个实现左滑删除效果的核心代码,请仔细看,这里涉及到一个数据渲染的问题,后面我会讲。

this.x = -92;
this.setData({
  x: this.x
});

3、完整代码

全部js代码:

<script>
import wepy from 'wepy';

export default class Chapter5 extends wepy.page {
  data = {
    // x轴方向的偏移
    x: 0,
    // 当前x的值
    currentX: 0
  };

methods = {
  handleMovableChange(e) {
    this.currentX = e.detail.x;
    this.$apply();
  },
  handleTouchend(e) {
    if (this.currentX < -46) {
      this.x = -92;
      this.setData({
        x: this.x
      });
    } else {
      this.x = 0;
      this.setData({
        x: this.x
      });
    }
  }
};
}
</script>

至此,我们的用小程序实现左滑删除的效果基本上就全部实现了,如果你是用小程序原生开发的话,其实原理都是一样的,所以实现的方式也差不多。下一章是进阶。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、 拖动事件
  • 2、手指触摸事件
  • 3、完整代码
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档