前言
不知道各位小伙伴在工作中遇到手势操作时,第一想法是上GitHub找找有没有好用的开源项目还是自己动手实现一个呢?反正我自己是先找开源,实在没有或不好用才考虑自己开发,毕竟工作是讲究效率的嘛。自己开发费时费力,而且还会有奇奇怪怪的兼容性问题。说起相关的手势库,比较优秀的有hammer.js和AlloyFinger。我个人更喜欢AlloyFinger一点,毕竟调用方式相对简单直观,但也存在不足,比如双指缩放和双指旋转不能以双指中心为原点操作,给我的感觉怪怪的。这也是为什么我要开发NonameGesture的原因。
简单介绍
该手势库主要使用PointerEvent指针事件开发。下面表格展示的是支持的手势。代码已开源至GitHub,有需要的小伙伴自取。
| 支持的手势 | 介绍 | 触发条件 |
|---|---|---|
| tap | 点击事件 | 点击时间<500ms,且移动误差<10 |
| singleTap | 单击事件,250ms延时 | 点击时间<500ms,且移动误差<10 |
| doubleTap | 双击事件,必定触发两次tap | 两次点击距离<30,且相隔时间<250ms |
| longTap | 长按事件 | 按住时间>=500ms |
| drag | 拖拽事件 | 拖拽 |
| swipe | 滑动事件 | 200ms内移动距离>=20 |
| rotate | 双指旋转事件 | 触摸点个数=2 |
| pinch | 双指缩放事件 | 触摸点个数=2 |
| wheel | 鼠标滚轮缩放事件 | 滚动鼠标滚轮 |
Demo
Demo:nonamegesture.codeman.top
GitHub:github.com/18223781723…