diff --git a/src/core/view/components/swiper/index.vue b/src/core/view/components/swiper/index.vue index e8b16d0f4abcd8cb5e582f1aca026db520c178d1..c41af8c49b132c4049190f441b13f6f4db2cc8da 100644 --- a/src/core/view/components/swiper/index.vue +++ b/src/core/view/components/swiper/index.vue @@ -444,12 +444,22 @@ export default { position -= length } } else if (n > 0) { + /** + * current -> 1 + * position -> 2 + * length -> 3 + * + * position -> -1 + */ for (; position > current;) { position -= length } for (; position + length < current;) { position += length } + if (position + length - current < current - position) { + position += length + } } else { for (; position + length < current;) { position += length