useLongPress
@astryxdesign/core v0.7.1 · useLongPress
参数
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
options | LongPressOptions | — | 配置对象。必填。 |
options.onLongPress | (point: { x: number, y: number }) => void | — | 按满 delayMs 之后触发,参数是按下时的坐标。必填。 |
options.disabled | MaybeRefOrGetter<boolean> | false | 为 true 时这次不检测,所以被禁用的触发器只要改这个值,不用重新注册。每次按下时读,写普通布尔值、ref 或 getter 都行。 |
options.isDisabled | MaybeRefOrGetter<boolean> | — | 同一个开关的另一个名字,任一为真就不检测。 |
options.delayMs | number | 500 | 要按住多少毫秒才算长按。 |
options.moveCancelPx | number | 10 | 任一轴上移动超过这个距离就取消,当作滚动或拖拽。 |
返回值
| 名称 | 类型 | 说明 |
|---|---|---|
handlers | { onTouchStart, onTouchMove, onTouchEnd, onTouchCancel } | 四个触摸监听,直接摊到目标元素上,例如 <button v-on="press.handlers">。第二根手指、抬手、取消都会结束这次按住;移动超过 moveCancelPx 也一样。 |
start | (point: { x: number, y: number }) => void | 从一个坐标开始检测。在 pointerdown 里调。它会先清掉上一次没完成的按住,再重新计时。 |
moveTo | (point: { x: number, y: number }) => boolean | 报告指针的新位置。还在容差内返回 true;超出去就取消这次按住并返回 false。没有正在进行的按住时也返回 false。 |
cancel | () => void | 丢掉还没完成的按住。绑在 pointerup 和 pointercancel 上。组件卸载时也会执行。 |