用 JavaScript 实现手势库 — 手势逻辑【前端组件化】

本文是前端组件化系列的第六篇,主要讲解如何用JavaScript实现手势库的手势逻辑,包括Start、Press、Pan、Tap和End事件。通过这些事件,可以实现点击、按压、拖动和轻拍等行为,适用于前端组件如轮播图。
摘要由CSDN通过智能技术生成

oKb2_15Uc8w

前端组件化系列目录


上一期《实现监听逻辑》中我们一起实现了基础的手势监听逻辑。有了这些手势的监听后,我们就可以开始实现每一个手势的逻辑。最终我们可以把这些手势应用到我们的《轮播图组件》当中。

接下来我们就开始实现 gesture 的逻辑。


Start 事件

首先我们会触发一个 start 事件,也就是当我们手指触摸到屏幕时第一个触发的事件。这时会有三种情况:

  • 手指松开
    • 会触发 end 事件,这样就构成一个 tap 点击的行为
    • 通过监听 end 事件来实现即可
  • 手指拖动超过 10 px
    • 这种就是 pan start 拖动的行为
    • 我们可以在 move 事件判断当前与上一个触点的距离
  • 手指停留在当前位置超过 0.5s
    • 这种就是 press start 按压的行为
    • 我们可以添加一个 setTimeout 来实现

Press 事件

所以我们第一步就是在 start 函数中加入一个 setTimout 的 handler 处理程序。

let handler;

let start = point => {
  handler = setTimeout(() => {
    console.log('presss ');
  }, 500);
};

一般来说 press 是我们比较常见的一个行为。但是实际上这里是 press start 事件,后面还会跟随着一个 press end 的事件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值