prependSlide.js 969 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. export default function prependSlide(slides) {
  2. const swiper = this;
  3. const {
  4. params,
  5. activeIndex,
  6. slidesEl
  7. } = swiper;
  8. if (params.loop) {
  9. swiper.loopDestroy();
  10. }
  11. let newActiveIndex = activeIndex + 1;
  12. const prependElement = slideEl => {
  13. if (typeof slideEl === 'string') {
  14. const tempDOM = document.createElement('div');
  15. tempDOM.innerHTML = slideEl;
  16. slidesEl.prepend(tempDOM.children[0]);
  17. tempDOM.innerHTML = '';
  18. } else {
  19. slidesEl.prepend(slideEl);
  20. }
  21. };
  22. if (typeof slides === 'object' && 'length' in slides) {
  23. for (let i = 0; i < slides.length; i += 1) {
  24. if (slides[i]) prependElement(slides[i]);
  25. }
  26. newActiveIndex = activeIndex + slides.length;
  27. } else {
  28. prependElement(slides);
  29. }
  30. swiper.recalcSlides();
  31. if (params.loop) {
  32. swiper.loopCreate();
  33. }
  34. if (!params.observer || swiper.isElement) {
  35. swiper.update();
  36. }
  37. swiper.slideTo(newActiveIndex, 0, false);
  38. }