UNPKG

tav-ui

Version:
35 lines (30 loc) 1.02 kB
'use strict'; 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