images-viewer-vue3
Version:
A lightweight image viewer for Vue3
29 lines (28 loc) • 793 B
JavaScript
import { ref as o } from "vue";
function M() {
const u = o(!1), t = o(0), n = o(0), e = o(null);
function a(l) {
u.value = !0, e.value = document.querySelector(".vnode-scroll__wrap"), e.value && (t.value = l.clientX - e.value.offsetLeft, n.value = e.value.scrollLeft, e.value.style.cursor = "grabbing", l.preventDefault());
}
function s(l) {
if (u.value && e.value) {
const v = (l.clientX - e.value.offsetLeft - t.value) * 2;
e.value.scrollLeft = n.value - v;
}
}
function r(l) {
u.value = !1, e.value && (e.value.style.cursor = "default");
}
function f(l) {
u.value = !1, e.value && (e.value.style.cursor = "grab");
}
return {
onMouseDown: a,
onMouseMove: s,
onMouseUp: r,
onMouseLeave: f
};
}
export {
M as useMouse
};