removeSlide.js 1.2 KB

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