UNPKG

mine-h5-ui

Version:

一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍

40 lines (39 loc) 1.75 kB
import { ref as r, watch as p } from "vue"; /*! * mine-h5-ui v2.15.0 * Copyright (c) 2025 biaov * @license MIT */ const g = ({ emit: i, modelValue: n }) => { const a = r(0), t = r(0), l = r(0), e = r(50), c = r(0); let o = 0, s = 0; const f = (u) => { n.value || (o = u.changedTouches[0].clientY, s = 0, c.value = 0); }, h = (u) => { if (n.value) return; const v = u.changedTouches[0].clientY - o; v > e.value ? (a.value = 1, s += 0.09, t.value = e.value + (v - e.value) / s, l.value = 1) : (t.value = v, l.value = v / e.value, a.value = 0); }, Y = (u) => { if (n.value) return; const v = u.changedTouches[0].clientY - o; c.value = 400, v > e.value ? (a.value = 2, t.value = e.value, l.value = 1, n.value = !0, i("refresh")) : (a.value = 0, t.value = 0, l.value = 0); }, d = (u) => { if (n.value) return; const v = u.clientY - o; v > e.value ? (a.value = 1, s += 0.09, t.value = e.value + (v - e.value) / s, l.value = 1) : (t.value = v, l.value = v / e.value, a.value = 0); }, T = (u) => { if (n.value) return; const v = u.clientY - o; c.value = 400, v > e.value ? (a.value = 2, t.value = e.value, l.value = 1, n.value = !0, i("refresh")) : (a.value = 0, t.value = 0, l.value = 0), document.onmousemove = null, document.onmouseup = null; }, m = (u) => { n.value || (o = u.clientY, s = 0, c.value = 0, document.onmousemove = d, document.onmouseup = T); }; return p(n, (u) => { u || (a.value = 3, setTimeout(() => { t.value = 0, l.value = 0; }, 600)); }), { activeState: a, transY: t, scale: l, showValue: e, duration: c, onTouchstart: f, onTouchmove: h, onTouchend: Y, onMousedown: m }; }; export { g as useHandMove };