slideNext.js 1.0 KB

12345678910111213141516171819202122232425262728
  1. /* eslint no-unused-vars: "off" */
  2. export default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {
  3. const swiper = this;
  4. const {
  5. enabled,
  6. params,
  7. animating
  8. } = swiper;
  9. if (!enabled) return swiper;
  10. let perGroup = params.slidesPerGroup;
  11. if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
  12. perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
  13. }
  14. const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
  15. const isVirtual = swiper.virtual && params.virtual.enabled;
  16. if (params.loop) {
  17. if (animating && !isVirtual && params.loopPreventsSliding) return false;
  18. swiper.loopFix({
  19. direction: 'next'
  20. });
  21. // eslint-disable-next-line
  22. swiper._clientLeft = swiper.wrapperEl.clientLeft;
  23. }
  24. if (params.rewind && swiper.isEnd) {
  25. return swiper.slideTo(0, speed, runCallbacks, internal);
  26. }
  27. return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
  28. }