SwiperJS Slider становится плоским после загрузки

Итак, сегодня я попытался установить предварительный загрузчик для одного из своих веб-сайтов.

Проблема связана с ползунком swiper (с эффектом 3D Coverflow). Когда страница загружается, слайдер swiper становится плоским, и если я изменяю размер браузера, он возвращается к обычному 3D-виду.

$(window).on('load', function() {
  $(".loader").fadeOut(2000);
  $(".content-sector").fadeIn(2000);
});

var swiper = new Swiper('.swiper-container', {
  effect: 'coverflow',
  grabCursor: true,
  centeredSlides: true,
  slidesPerView: 'auto',
  coverflowEffect: {
    rotate: 30,
    stretch: 0,
    depth: 300,
    modifier: 1,
    slideShadows: true,
  },
  pagination: {
    el: '.swiper-pagination',
  },
});
.content-sector{
  display: none;
}            
.card-custom {
    position: relative;
    background: #fff;
    width: 400px;
    height: 500px;
    margin: 0 auto;
}
.swiper-slide {
    width: 400px;
}

/* Try changing the output window size*/
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href = "https://unpkg.com/[email protected]/swiper-bundle.min.css" rel = "stylesheet"/>
<script src = "https://unpkg.com/[email protected]/swiper-bundle.min.js"></script>
<div class = "loader">
  <img src = "https://i.pinimg.com/originals/a2/dc/96/a2dc9668f2cf170fe3efeb263128b0e7.gif" alt = "" style = "width:100%;">
</div>
<div class = "content-sector">
  <div class = "col-auto">
    <div class = "swiper-container">
      <div class = "swiper-wrapper">
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
  • HTML-код
<div class = "loader">
    <img src = "img1.gif" alt = "">
</div>
<div class = "content-sector">
    ---Whole page content in here---
</div>
  • JS-часть (jquery-3.5.1.min.js)
<script>
    $(window).on('load', function() {
        $(".loader").fadeOut(1000);
        $(".content-sector").fadeIn(1000);
    });
</script>

Любая помощь будет высоко оценена.
Спасибо.

создайте минимально воспроизводимый пример вашей проблемы где-нибудь, пожалуйста

Ivan Karaman 23.12.2020 21:36

@IvanKaraman Я добавил пример ссылки в свой пост.

Dulan Pabasara 23.12.2020 23:19
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
2
851
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша проблема связана с каким-то конфликтом, который вы создали.

При загрузке .content-sector отображается none (Swiper внутри)

.content-sector{
  display: none;
}            

Этот сценарий «ломает» вычисления swiper Core cube. Почему? (Вы должны открыть GitHub и задать вопрос/отчет).

На данный момент удалите display: none; (или измените отображение: нет; по коду после загрузки swiper).

Далее похоже, что анимация Jquery также нарушает макет.

Если вы хотите создать эффект fade-in для свайпера — пока используйте белое наложение над контентом.

Фрагмент:

/* Initialize Swiper */
var swiper = new Swiper('.swiper-container', {
  effect: 'coverflow',
  grabCursor: true,
  centeredSlides: true,
  slidesPerView: 'auto',
  coverflowEffect: {
    rotate: 30,
    stretch: 0,
    depth: 300,
    modifier: 1,
    slideShadows: true,
  },
  pagination: {
    el: '.swiper-pagination',
  },
});

/* on load */
$(window).on('load', function() {
  $(".loader").fadeOut(2000);
  $(".content-sector").fadeIn(2000);
});
   
.card-custom {
    position: relative;
    background: #fff;
    width: 400px;
    height: 500px;
    margin: 0 auto;
}
.swiper-slide {
    width: 400px;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href = "https://unpkg.com/[email protected]/swiper-bundle.min.css" rel = "stylesheet"/>
<script src = "https://unpkg.com/[email protected]/swiper-bundle.min.js"></script>
<div class = "loader">
  <img src = "https://i.pinimg.com/originals/a2/dc/96/a2dc9668f2cf170fe3efeb263128b0e7.gif" alt = "" style = "width:100%;">
</div>
<div class = "content-sector">
  <div class = "col-auto">
    <div class = "swiper-container">
      <div class = "swiper-wrapper">
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
        <div class = "swiper-slide">
          <div class = "card card-custom">
            <div class = "sliderText bg-dark">
              <img src = "img/default.png" class = "rounded-circle shadow" width = "180" height = "180" alt = "">
            </div>
            <div class = "content">
              <h4>Person 1</h4>
              <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Corporis quisquam at voluptatum, voluptatibus sequi earum? Similique officia atque vero impedit.</p>
              <a href = "#" class = "btn btn-custom">Read More</a>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

Другие вопросы по теме