UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

1 lines 3.86 kB
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/carousel/seamless/src/composable.ts"],"sourcesContent":["import { computed, ref } from \"vue\";\r\nimport { UiCarouselSeamlessProps } from \"../index\";\r\nimport { utility } from \"@various/utils\";\r\n\r\nexport const useComposable = (define: UiCarouselSeamlessProps) => {\r\n //* 响应式变量\r\n const refs = {\r\n offset: ref<number>(0),\r\n frame: ref<number>(),\r\n main: ref<HTMLDivElement>(),\r\n content: ref<HTMLDivElement>(),\r\n container: ref<HTMLDivElement>(),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 绘制动画\r\n animation: () => {\r\n //* 判断是否向下执行\r\n if (!refs.container.value || !refs.content.value || !refs.main.value) return;\r\n if (refs.offset.value >= refs.content.value.offsetWidth) {\r\n refs.offset.value = 0;\r\n } else {\r\n refs.offset.value += define.delay;\r\n }\r\n\r\n //* 绘制\r\n refs.container.value.style.transform = `translateX(-${refs.offset.value}px)`;\r\n //* 触发下一帧绘制\r\n refs.frame.value = window.requestAnimationFrame(methods.animation);\r\n },\r\n\r\n //* 鼠标移入事件\r\n mouseenter: () => {\r\n refs.frame.value && window.cancelAnimationFrame(refs.frame.value);\r\n },\r\n\r\n //* 鼠标移出事件\r\n mouseleave: () => {\r\n //* 判断是否向下执行\r\n if (!refs.container.value || !refs.content.value || !refs.main.value) return;\r\n else {\r\n refs.frame.value = window.requestAnimationFrame(methods.animation);\r\n }\r\n },\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 标签样式\r\n style: computed(() => {\r\n //* 高度处理\r\n if (utility.isNumber(define.height)) return { height: define.height + \"px\" };\r\n else {\r\n return { height: define.height };\r\n }\r\n }),\r\n };\r\n\r\n return { refs, methods, computeds };\r\n};\r\n"],"names":["utility.isNumber"],"mappings":";;;;AAIa,MAAA,aAAA,GAAgB,CAAC,MAAoC,KAAA;AAE9D,EAAA,MAAM,IAAO,GAAA;AAAA,IACT,MAAA,EAAQ,IAAY,CAAC,CAAA;AAAA,IACrB,OAAO,GAAY,EAAA;AAAA,IACnB,MAAM,GAAoB,EAAA;AAAA,IAC1B,SAAS,GAAoB,EAAA;AAAA,IAC7B,WAAW,GAAoB,EAAA;AAAA,GACnC,CAAA;AAGA,EAAA,MAAM,OAAU,GAAA;AAAA;AAAA,IAEZ,WAAW,MAAM;AAEb,MAAI,IAAA,CAAC,IAAK,CAAA,SAAA,CAAU,KAAS,IAAA,CAAC,IAAK,CAAA,OAAA,CAAQ,KAAS,IAAA,CAAC,IAAK,CAAA,IAAA,CAAK,KAAO,EAAA,OAAA;AACtE,MAAA,IAAI,KAAK,MAAO,CAAA,KAAA,IAAS,IAAK,CAAA,OAAA,CAAQ,MAAM,WAAa,EAAA;AACrD,QAAA,IAAA,CAAK,OAAO,KAAQ,GAAA,CAAA,CAAA;AAAA,OACjB,MAAA;AACH,QAAK,IAAA,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA,KAAA,CAAA;AAAA,OAChC;AAGA,MAAA,IAAA,CAAK,UAAU,KAAM,CAAA,KAAA,CAAM,YAAY,CAAe,YAAA,EAAA,IAAA,CAAK,OAAO,KAAK,CAAA,GAAA,CAAA,CAAA;AAEvE,MAAA,IAAA,CAAK,KAAM,CAAA,KAAA,GAAQ,MAAO,CAAA,qBAAA,CAAsB,QAAQ,SAAS,CAAA,CAAA;AAAA,KACrE;AAAA;AAAA,IAGA,YAAY,MAAM;AACd,MAAA,IAAA,CAAK,MAAM,KAAS,IAAA,MAAA,CAAO,oBAAqB,CAAA,IAAA,CAAK,MAAM,KAAK,CAAA,CAAA;AAAA,KACpE;AAAA;AAAA,IAGA,YAAY,MAAM;AAEd,MAAI,IAAA,CAAC,IAAK,CAAA,SAAA,CAAU,KAAS,IAAA,CAAC,IAAK,CAAA,OAAA,CAAQ,KAAS,IAAA,CAAC,IAAK,CAAA,IAAA,CAAK,KAAO,EAAA,OAAA;AAAA,WACjE;AACD,QAAA,IAAA,CAAK,KAAM,CAAA,KAAA,GAAQ,MAAO,CAAA,qBAAA,CAAsB,QAAQ,SAAS,CAAA,CAAA;AAAA,OACrE;AAAA,KACJ;AAAA,GACJ,CAAA;AAGA,EAAA,MAAM,SAAY,GAAA;AAAA;AAAA,IAEd,KAAA,EAAO,SAAS,MAAM;AAElB,MAAI,IAAAA,QAAiB,CAAA,MAAA,CAAO,MAAM,CAAA,SAAU,EAAE,MAAA,EAAQ,MAAO,CAAA,MAAA,GAAS,IAAK,EAAA,CAAA;AAAA,WACtE;AACD,QAAO,OAAA,EAAE,MAAQ,EAAA,MAAA,CAAO,MAAO,EAAA,CAAA;AAAA,OACnC;AAAA,KACH,CAAA;AAAA,GACL,CAAA;AAEA,EAAO,OAAA,EAAE,IAAM,EAAA,OAAA,EAAS,SAAU,EAAA,CAAA;AACtC;;;;"}