vuestic-ui
Version:
Vue 3 UI Framework
35 lines (34 loc) • 952 B
JavaScript
import { u as useWindow } from "./useWindow.js";
const useScrollParent = () => {
const window = useWindow();
const fakeWindow = new Proxy(window.value || {}, {
get: (target, key, rec) => {
var _a, _b;
if (key === "scrollTop") {
return (_a = window.value) == null ? void 0 : _a.scrollY;
}
if (key === "scrollLeft") {
return (_b = window.value) == null ? void 0 : _b.scrollX;
}
const value = Reflect.get(target, key, rec);
if (typeof value === "function") {
return value.bind(target);
}
return value;
}
});
const getScrollableParent = (element) => {
if (!element) {
return fakeWindow;
}
if (element.scrollHeight > element.clientHeight) {
return element;
}
return getScrollableParent(element.parentElement);
};
return { getScrollableParent };
};
export {
useScrollParent as u
};
//# sourceMappingURL=useScrollParent.js.map