Итак, сегодня я попытался установить предварительный загрузчик для одного из своих веб-сайтов.
Проблема связана с ползунком 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>
<div class = "loader">
<img src = "img1.gif" alt = "">
</div>
<div class = "content-sector">
---Whole page content in here---
</div>
<script>
$(window).on('load', function() {
$(".loader").fadeOut(1000);
$(".content-sector").fadeIn(1000);
});
</script>
Любая помощь будет высоко оценена.
Спасибо.
@IvanKaraman Я добавил пример ссылки в свой пост.
Ваша проблема связана с каким-то конфликтом, который вы создали.
При загрузке .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>
создайте минимально воспроизводимый пример вашей проблемы где-нибудь, пожалуйста