@zebra-ui/swiper
Version:
专为多端设计的高性能swiper轮播组件库,支持多种复杂的 3D swiper轮播效果。
36 lines (30 loc) • 1 kB
text/typescript
import type { TransitionEmit } from '../../../types/components/core/transition/transition-emit'
import type { SwiperEvents } from '../../../types/swiper-events'
const transitionEmit: TransitionEmit = function ({
swiper,
runCallbacks,
direction,
step
}) {
const { activeIndex, previousIndex } = swiper
let dir = direction
if (!dir) {
if (activeIndex > previousIndex) dir = 'next'
else if (activeIndex < previousIndex) dir = 'prev'
else dir = 'reset'
}
swiper.emit(`transition${step}` as keyof SwiperEvents)
if (runCallbacks && activeIndex !== previousIndex) {
if (dir === 'reset') {
swiper.emit(`slideResetTransition${step}` as keyof SwiperEvents)
return
}
swiper.emit(`slideChangeTransition${step}` as keyof SwiperEvents)
if (dir === 'next') {
swiper.emit(`slideNextTransition${step}` as keyof SwiperEvents)
} else {
swiper.emit(`slidePrevTransition${step}` as keyof SwiperEvents)
}
}
}
export default transitionEmit