Pointeract
一个前端库,用于解析用户交互并派发平移缩放事件,是 Hammer.js 的轻量级且可扩展的替代方案。
一个前端库,用于解析用户交互并派发平移缩放事件,是 Hammer.js 的轻量级且可扩展的替代方案。
Pointeract 是一个轻量级的 JavaScript/TypeScript 工具库,专注于一件事——处理 DOM 元素的用户交互,例如多点触控和触控板操作。
借助 TypeScript 独特而灵活的类型系统及其动态特性,Pointeract 实现了高度模块化、可扩展且高效的架构。其核心包体积仅 1KB(压缩后),功能则由同样小巧的模块提供。它完全支持 摇树优化(tree-shaking),使用的模块越少,最终打包体积就越小。
主页与文档:pointeract.consensia.cc。
Ctrl/Shift 键绑定)这些交互功能均以模块化形式提供,可灵活组合,从简单的拖放操作到复杂的画布应用皆能胜任。
若缺少您所需的功能?请编写您的自定义模块!
PreventDefault 模块除外),细致的清理机制可防止内存泄漏。市面上已有众多交互库,其中最著名的包括 d3-drag + d3-zoom、Interact.js 和 Hammer.js,但 Pointeract 却与众不同。
| 标准 | Pointeract | D3 Drag + D3 Zoom | Hammer.js | Interact.js |
|---|---|---|---|---|
| 使用 TypeScript 编写? | ✅ | ❌ | ❌ | ✅ |
| 支持摇树优化 (Tree-shakeable)? | ✅ | ❌ | ❌ | ❌ |
| 总包大小 (压缩后) | 👑 2.7KB | 17KB | 7KB | 28KB |
| 最后更新时间 | 👑 活跃维护中 | 2021 | 2015 | 2023 |
| 多功能性 | 指针与滚轮操作 + 部分工具 | 👑 指针与滚轮操作 + 生态系统 | 仅限指针相关 | 指针相关 + 全面工具集 |
| 支持的设备 | 👑 鼠标、滚轮、触控、触摸板 | ⚠️ 不支持触摸板 | ⚠️ 不支持触摸板或鼠标滚轮 | ⚠️ 不支持触摸板或鼠标滚轮 |
| 稳健性 (通过 猴子测试) | ✅ | ✅ | ❌ 元素抖动 | ❌ 忽略第二次触摸 |
| 可扩展性? | ✅ | ❌ | ❌ | ❌ |
Pointeract 采用 Apache License 2.0 授权。