滑动手势识别
灵感:能力工具箱 hammer-gesture(Hammer.js 识别移动端滑动手势)。
> 小四原创:列表/卡片容器 → new Hammer → swipeleft/swiperight。
> 卸载 destroy();桌面可保留但不强依赖。
何时使用
- 移动端客户卡片左右滑切换
- Demo 附件预览左右翻
- 简易手势返回/下一项
硬约束
- 依赖:
hammerjs(类型可按需@types/hammerjs)。 - 卸载必须
destroy()。 - 与页面纵向滚动冲突时限制方向或
touch-action。 - 实现要点注释标 小四原创。
- 不做完整多指缩放编辑器(可用 panzoom 等)。
推荐实现
import Hammer from 'hammerjs'
// 小四原创:容器滑动手势
export function mountSwipeGesture(
el: HTMLElement,
handlers: { onLeft?: () => void; onRight?: () => void },
): { destroy: () => void } {
const mc = new Hammer(el)
mc.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL })
mc.on('swipeleft', () => handlers.onLeft?.())
mc.on('swiperight', () => handlers.onRight?.())
return { destroy: () => mc.destroy() }
}
Agent 步骤
npm i hammerjs。- 卡片容器挂载;左滑下一条/右滑上一条。
onBeforeUnmount调destroy。- 自测:真机或模拟器可触发;卸载无残留。
不要做
- 与横向滚动容器抢手势却不调参。
- 忘记 destroy。
附加
- README.md · reference.md · templates/usage.md