diff --git a/src/core/slider.ts b/src/core/slider.ts index 790a683..dece557 100644 --- a/src/core/slider.ts +++ b/src/core/slider.ts @@ -23,8 +23,18 @@ function Slider( instance.emit('created') } - function moveToIdx(idx, absolute, animation) { - const distance = instance.track.idxToDist(idx, absolute) + function moveToIdx(idx, absolute, animation, origin?: 'auto' | 'center') { + let distance: number + + if (!origin || origin === 'auto') { + distance = instance.track.idxToDist(idx, absolute) + } else { + const { distance: prevDistance, size } = + instance.track.details.slides[idx] + const elementCenter = prevDistance + size / 2 + distance = Math.abs(0.5 - elementCenter) + } + if (!distance) return const defaultAnimation = instance.options.defaultAnimation instance.animator.start([