swiper.js SVG彼此堆叠

问题描述 投票:1回答:1

我是Swiper.js的新手,我有一个全屏显示swiper,其中包含用作背景滑块的英雄部分。在此英雄部分的中间,我还有另一个swiper,需要显示一些带有文本的SVG。英雄刷卡不是问题。问题在于,此SVG滑动器将SVG彼此堆叠在一起,形成了一个完整的混乱局面。

这是SVG滑动器的启动方式:

screenshot

这是最后一张幻灯片显示的样子:screenshot

然后清理,并再次开始将SVG彼此堆叠的过程。

这是我的HTML:

 <div class="swiper-container textslider">
            <div class="swiper-wrapper">
                <div class="swiper-slide text--1"></div>
                <div class="swiper-slide text--2"></div>
                <div class="swiper-slide text--3"></div>
                <div class="swiper-slide text--4"></div>
            </div>
        </div>

        <div class="player-bg">
            <a href="#" class="player"><span id="player__text">Reproducir <i class="fas fa-play"></i></span></a>
        </div>

        <div class="swiper-container background">
            <div class="swiper-wrapper">
                <div class="swiper-slide slide--1"></div>
                <div class="swiper-slide slide--2"></div>
                <div class="swiper-slide slide--3"></div>
                <div class="swiper-slide slide--4"></div>
            </div>
        </div>
    </div>

    <script>
        var swiper = new Swiper('.swiper-container', {
            spaceBetween: 30,
            effect: 'fade',
            speed: 2000,
            autoplay: {
                delay: 4000,
                disableOnInteraction: false,
            },
        });

        var textswiper = new Swiper('.textslider', {
            spaceBetween: 30,
            effect: 'fade',
            speed: 2000,
            autoplay: {
                delay: 4000,
                disableOnInteraction: false,
            },
        });
    </script>

这是我的CSS:

.background {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    z-index: -99;
}

.textslider {
    width: 500px;
    height: 500px;
    position: relative;
    z-index: 7;
}

.slide--1 {
    background-image: url(../images/hero/slider-0.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.slide--2 {
    background-image: url(../images/hero/slider-1.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.slide--3 {
    background-image: url(../images/hero/slider-2.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.slide--4 {
    background-image: url(../images/hero/slider-3.jpg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.text--1 {
    background-image: url(../images/bible-verses/verse2.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.text--2 {
    background-image: url(../images/bible-verses/verse1.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.text--3 {
    background-image: url(../images/bible-verses/verse3.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.text--4 {
    background-image: url(../images/bible-verses/verse4.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

我在做什么错?

javascript html css svg swiper
1个回答
0
投票

所有SVG的位置都完全相同(彼此顶部),并且由于它们具有透明的背景,因此您可以通过它们看到它们。

滑动器通过调整opacity CSS属性来控制幻灯片的可见性。您的问题是默认的滑动效果会同时将多张幻灯片的不透明度设置为1(即可见)。

但是,Swiper具有启用交叉淡入淡出的选项,这是您要寻找的行为。在[文字]滑杆上添加fadeEffect选项:

var textswiper = new Swiper('.textslider', {
  spaceBetween: 30,
  effect: 'fade',
  fadeEffect: { // Add this
    crossFade: true,
  }
  speed: 2000,
  autoplay: {
    delay: 4000,
    disableOnInteraction: false,
  },
});
© www.soinside.com 2019 - 2024. All rights reserved.