effect-virtual-transition-end.js 982 Bytes
Newer Older
xhw committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
export default function effectVirtualTransitionEnd({
	swiper,
	duration,
	transformEl,
	allSlides
}) {
	const {
		slides,
		activeIndex,
		$wrapperEl
	} = swiper;

	if (swiper.params.virtualTranslate && duration !== 0) {
		let eventTriggered = false;
		let $transitionEndTarget;

		if (allSlides) {
			$transitionEndTarget = transformEl ? slides.find(transformEl) : slides;
		} else {
			$transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides[activeIndex];
		}
		for (let i = 0; i < $transitionEndTarget.length; i += 1) {
			$transitionEndTarget[i].transitionEnd(() => {
				if (eventTriggered) return;
				if (!swiper || swiper.destroyed) return;
				eventTriggered = true;
				swiper.animating = false;
				// const triggerEvents = ['webkitTransitionEnd', 'transitionend'];
				swiper.emit('transitionEnd');
				// for (let i = 0; i < triggerEvents.length; i += 1) {
				// 	$wrapperEl.trigger(triggerEvents[i]);
				// }
			}, duration);
		}
	}
}