removeSlide.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. export default function removeSlide(slidesIndexes) {
  2. const swiper = this;
  3. const {
  4. params,
  5. $wrapperEl,
  6. activeIndex
  7. } = swiper;
  8. let activeIndexBuffer = activeIndex;
  9. if (params.loop) {
  10. activeIndexBuffer -= swiper.loopedSlides;
  11. swiper.loopDestroy();
  12. swiper.slides = $wrapperEl.children(`.${params.slideClass}`);
  13. }
  14. let newActiveIndex = activeIndexBuffer;
  15. let indexToRemove;
  16. if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
  17. for (let i = 0; i < slidesIndexes.length; i += 1) {
  18. indexToRemove = slidesIndexes[i];
  19. if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
  20. if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
  21. }
  22. newActiveIndex = Math.max(newActiveIndex, 0);
  23. } else {
  24. indexToRemove = slidesIndexes;
  25. if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
  26. if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
  27. newActiveIndex = Math.max(newActiveIndex, 0);
  28. }
  29. if (params.loop) {
  30. swiper.loopCreate();
  31. }
  32. if (!params.observer) {
  33. swiper.update();
  34. }
  35. if (params.loop) {
  36. swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
  37. } else {
  38. swiper.slideTo(newActiveIndex, 0, false);
  39. }
  40. }