zhuguifei
2025-07-04 186d172fc06dfe44dc2a61d238356e6a7db652d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
export default async function updateAutoHeight(speed) {
    const swiper = this;
    const activeSlides = [];
    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
    let newHeight = 0;
    let i;
 
    if (typeof speed === 'number') {
        swiper.setTransition(speed);
    } else if (speed === true) {
        swiper.setTransition(swiper.params.speed);
    }
 
    const getSlideByIndex = index => {
        if (isVirtual) {
            return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) ===
                index)[
                0];
        }
 
        return swiper.slides[index];
    }; // Find slides currently in view
 
    if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
        if (swiper.params.centeredSlides) {
            swiper.visibleSlides.each(slide => {
                activeSlides.push(slide);
            });
        } else {
            for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
                const index = swiper.activeIndex + i;
                if (index > swiper.slides.length && !isVirtual) break;
                activeSlides.push(getSlideByIndex(index));
            }
        }
    } else {
        activeSlides.push(getSlideByIndex(swiper.activeIndex));
    } // Find new height from highest slide in view
 
 
    for (i = 0; i < activeSlides.length; i += 1) {
        if (typeof activeSlides[i] !== 'undefined') {
            const size = await activeSlides[i].getSize();
            const height = size.height;
            newHeight = height > newHeight ? height : newHeight;
        }
    } // Update Height
 
 
    if (newHeight || newHeight === 0) swiper.$wrapperEl.css({
        height: `${newHeight?newHeight:''}px`
    });
}