UNPKG

2.73 kBJavaScriptView Raw
1export default function updateSlidesClasses() {
2 const swiper = this;
3 const {
4 slides,
5 params,
6 $wrapperEl,
7 activeIndex,
8 realIndex
9 } = swiper;
10 const isVirtual = swiper.virtual && params.virtual.enabled;
11 slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);
12 let activeSlide;
13
14 if (isVirtual) {
15 activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`);
16 } else {
17 activeSlide = slides.eq(activeIndex);
18 } // Active classes
19
20
21 activeSlide.addClass(params.slideActiveClass);
22
23 if (params.loop) {
24 // Duplicate to all looped slides
25 if (activeSlide.hasClass(params.slideDuplicateClass)) {
26 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
27 } else {
28 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
29 }
30 } // Next Slide
31
32
33 let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);
34
35 if (params.loop && nextSlide.length === 0) {
36 nextSlide = slides.eq(0);
37 nextSlide.addClass(params.slideNextClass);
38 } // Prev Slide
39
40
41 let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);
42
43 if (params.loop && prevSlide.length === 0) {
44 prevSlide = slides.eq(-1);
45 prevSlide.addClass(params.slidePrevClass);
46 }
47
48 if (params.loop) {
49 // Duplicate to all looped slides
50 if (nextSlide.hasClass(params.slideDuplicateClass)) {
51 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
52 } else {
53 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
54 }
55
56 if (prevSlide.hasClass(params.slideDuplicateClass)) {
57 $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
58 } else {
59 $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
60 }
61 }
62
63 swiper.emitSlidesClasses();
64}
\No newline at end of file