朱桂飞
2023-03-20 3755d8c086441ce54864121ca4eb6f800fb914a8
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
// import { h } from 'vue';
 
function updateOnVirtualData(swiper) {
    if (
        !swiper ||
        swiper.destroyed ||
        !swiper.params.virtual ||
        (swiper.params.virtual && !swiper.params.virtual.enabled)
    ) return;
    swiper.updateSlides();
    swiper.updateProgress();
    swiper.updateSlidesClasses();
    if (swiper.lazy && swiper.params.lazy.enabled) {
        swiper.lazy.load();
    }
    if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {
        swiper.parallax.setTranslate();
    }
}
 
function renderVirtual(swiperRef, slides, virtualData) {
    if (!virtualData) return null;
    const style = swiperRef.isHorizontal() ? {
        [swiperRef.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`,
    } : {
        top: `${virtualData.offset}px`,
    };
    return slides
        .filter((slide, index) => index >= virtualData.from && index <= virtualData.to)
        .map((slide) => {
            if (!slide.props) slide.props = {};
            if (!slide.props.style) slide.props.style = {};
            slide.props.swiperRef = swiperRef;
            slide.props.style = style;
            return h(slide.type, {
                ...slide.props
            }, slide.children);
        });
}
 
export {
    renderVirtual,
    updateOnVirtualData
};