|
|
@ -108,9 +108,31 @@ export default { |
|
|
|
const swiperStore = useSwiperStore() |
|
|
|
swiperStore.initSwiper(swiper) |
|
|
|
swiperStore.updateActiveIndex(activeIndex) |
|
|
|
// add animate to some ele |
|
|
|
animateCSS('#a', 'bounce') |
|
|
|
} |
|
|
|
const animateCSS = (element, animation, prefix = 'animate__') => |
|
|
|
// We create a Promise and return it |
|
|
|
new Promise((resolve, reject) => { |
|
|
|
const animationName = `${prefix}${animation}` |
|
|
|
const node = document.querySelector(element) |
|
|
|
|
|
|
|
node?.classList.add(`${prefix}animated`, animationName) |
|
|
|
|
|
|
|
// When the animation ends, we clean the classes and resolve the Promise |
|
|
|
function handleAnimationEnd(event) { |
|
|
|
event.stopPropagation() |
|
|
|
node?.classList.remove(`${prefix}animated`, animationName) |
|
|
|
resolve('Animation ended') |
|
|
|
} |
|
|
|
|
|
|
|
node?.addEventListener('animationend', handleAnimationEnd, { |
|
|
|
once: true, |
|
|
|
}) |
|
|
|
}) |
|
|
|
return { |
|
|
|
onSwiper, |
|
|
|
animateCSS, |
|
|
|
onSlideChange, |
|
|
|
pagination: { |
|
|
|
clickable: true, |
|
|
|