sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
32 lines (31 loc) • 977 B
JavaScript
import { getTwoPointsDistance } from '../utils';
import { useTimeout } from './useTimeout';
export function useSimulatedClick(click, duration = 10000) {
let timeout = false;
let downCoord = { x: 0, y: 0 };
const { start: timeoutLater, stop: cancelTimeout } = useTimeout(() => {
timeout = true;
}, duration);
const onTouchStart = (event) => {
downCoord = {
x: event.touches[0].clientX,
y: event.touches[0].clientY,
};
timeoutLater();
};
const onTouchEnd = (event) => {
cancelTimeout();
if (!timeout) {
const upCoord = {
x: event.changedTouches[0].clientX,
y: event.changedTouches[0].clientY,
};
const distance = getTwoPointsDistance(downCoord, upCoord);
if (distance <= 10) {
click();
}
}
timeout = false;
};
return [onTouchStart, onTouchEnd];
}