vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
2 lines (1 loc) • 914 B
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),S=require("@vuux/utils"),f=(r,e,t,o)=>{const s=l.computed(()=>({height:r.height?r.height:"",maxHeight:r.maxHeight?r.maxHeight:""}));let n=0,u=0,i=null;const c=()=>{n||(n=requestAnimationFrame(()=>{if(!e.value){n=0;return}t.value&&t.value.handleScroll(e.value),o("scroll",{top:e.value.scrollTop,left:e.value.scrollLeft}),n=0}))},a=()=>{u||(u=requestAnimationFrame(()=>{t.value&&t.value.update(),u=0}))},v=()=>{e.value&&c()},d=()=>{a()},m=S.Utils.debounce(()=>{a()},100),h=()=>{e.value&&(i=new ResizeObserver(()=>{m()}),i.observe(e.value))},g=()=>{i&&(i.disconnect(),i=null)};return l.onMounted(()=>{h(),l.nextTick(()=>{t.value&&t.value.update()})}),l.onUpdated(()=>{a()}),l.onBeforeUnmount(()=>{g(),n&&cancelAnimationFrame(n),u&&cancelAnimationFrame(u)}),{update:d,scroll:v,wrapStyle:s}};exports.useScrollBar=f;