UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 896 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("vue"),d=t=>{const s=u.computed(()=>({height:t.height,width:t.width,objectFit:t.fit})),a=u.ref(0);let e=null,i=0,n=!1;const o=l=>{n=!0;const c=l||performance.now();i||(i=c),c-i>=t.duration*1e3&&(a.value++,a.value>=t.data.length&&(a.value=0),i=c),n&&(e=requestAnimationFrame(o))},f=()=>{n&&e&&(cancelAnimationFrame(e),e=null,n=!1)},m=()=>{!n&&t.autoplay&&t.data.length>1&&(e=requestAnimationFrame(o))},r=l=>{a.value+=l,a.value>=t.data.length&&(a.value=0),a.value<0&&(a.value=t.data.length-1)};return u.watch(()=>t.data.length,l=>{l>1&&t.autoplay?(a.value=0,n||(e=requestAnimationFrame(o))):n&&e&&(cancelAnimationFrame(e),e=null,n=!1)},{immediate:!0}),u.onUnmounted(()=>{e&&cancelAnimationFrame(e),e=null,n=!1}),{styles:s,index:a,onMouseenter:f,onMouseleave:m,handleToggleFN:r}};exports.useCarousel=d;