1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- export default function slideToClosest(speed, runCallbacks, internal, threshold) {
- if (speed === void 0) {
- speed = this.params.speed;
- }
- if (runCallbacks === void 0) {
- runCallbacks = true;
- }
- if (threshold === void 0) {
- threshold = 0.5;
- }
- const swiper = this;
- let index = swiper.activeIndex;
- const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
- const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
- const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
- if (translate >= swiper.snapGrid[snapIndex]) {
-
-
- const currentSnap = swiper.snapGrid[snapIndex];
- const nextSnap = swiper.snapGrid[snapIndex + 1];
- if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
- index += swiper.params.slidesPerGroup;
- }
- } else {
-
-
- const prevSnap = swiper.snapGrid[snapIndex - 1];
- const currentSnap = swiper.snapGrid[snapIndex];
- if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
- index -= swiper.params.slidesPerGroup;
- }
- }
- index = Math.max(index, 0);
- index = Math.min(index, swiper.slidesGrid.length - 1);
- return swiper.slideTo(index, speed, runCallbacks, internal);
- }
|