tav-ui
Version:
35 lines (30 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
function useKeepScroll(keepScrollOpt) {
if (!keepScrollOpt.scrollEl && (!keepScrollOpt.getScrollTop || !keepScrollOpt.setScrollTop))
throw new Error("invalid params!");
let scrollTop = 0;
const getScrollTop = keepScrollOpt.getScrollTop ?? function() {
return keepScrollOpt.scrollEl.scrollTop;
};
const setScrollTop = keepScrollOpt.setScrollTop ?? function(value) {
keepScrollOpt.scrollEl.scrollTop = value;
};
function onScroll() {
scrollTop = getScrollTop();
}
const scrollFn = () => {
setScrollTop(scrollTop);
};
scrollFn();
if (keepScrollOpt.scrollEl) {
keepScrollOpt.scrollEl.addEventListener("scroll", onScroll);
vue.onBeforeUnmount(() => {
keepScrollOpt.scrollEl?.removeEventListener("scroll", onScroll);
});
}
return { onScroll, scrollFn, scrollTop };
}
exports.useKeepScroll = useKeepScroll;
//# sourceMappingURL=useKeepScroll2.js.map