Изчезает стрелка в слайдере после активации
new Swiper('.swiper-abc', {
navigation: {
nextEl:`.swiper-button-next`,
prevEl: `.swiper-button-prev`,
},
});
.serviceProvided-section{
background:url("../img/serviceprovidedbg.png") no-repeat;
background-size:cover;
background-color:#683b5b;
min-height: 480px;
margin: 65px 0px 0px 0px;
padding:15px 0px 15px 0px;
}
.serviceProvided-section h2{
font-size: 50px;
font-weight: 500;
margin-left:60px;
color:#ffffff;
}
/* .text-block__wrapper{
display:flex;
justify-content: flex-end;
margin-right:187px;
} */
.swiper {
width:1200px;
height:300px;
}
.text-block{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.text-block h3{
color:#ffffff;
margin-bottom: 1em;
}
.text-block p{
font-size:11px;
color:#ffffff;
}
.text-block__block{
width:40%;
margin-bottom:3em;
}
iframe{
width:570px;
height: 302px;
}
<script src="https://unpkg.com/swiper@8/swiper-bundle.min.js"></script>
<link href="https://unpkg.com/swiper@8/swiper-bundle.min.css" rel="stylesheet"/>
<section class="serviceProvided-section">
<div class="swiper-container swiper-abc">
<h2><span class="s-letter">S</span>ervice <span class="underline">Provided</span></h2>
<div class="swiper-wrapper">
<div class="swiper-slide text-block">
<div class="text-block__block">
<h3>App Development</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>Game Development</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>App Design</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>Game Design</h3>
<p class="main-content-text"></p>
</div>
</div>
<div class="swiper-slide">
<iframe
class="video-slider__video"
src="#"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</section>
После прокрутки 1го слайла пропадают кнопки(стрелки) пробовал выносить вне блока swiper-wrapper - полностью исчезали. P.S Думал проблема в iframe но попробовав с обычными блоками картинок ничего не изменилось. Также выносил блоки контента под дополнительную обертку.
Ответы (2 шт):
Автор решения: EzioMercer
→ Ссылка
Ну, конечно, будут пропадать, если быть точнее, то будут пролистываться)) Вы запихнули кнопки в swiper-wrapper вынесите их в swiper-container:
new Swiper('.swiper-abc', {
navigation: {
nextEl: `.swiper-button-next`,
prevEl: `.swiper-button-prev`,
},
});
.serviceProvided-section {
background: url("../img/serviceprovidedbg.png") no-repeat;
background-size: cover;
background-color: #683b5b;
min-height: 480px;
margin: 65px 0px 0px 0px;
padding: 15px 0px 15px 0px;
}
.serviceProvided-section h2 {
font-size: 50px;
font-weight: 500;
margin-left: 60px;
color: #ffffff;
}
/* .text-block__wrapper{
display:flex;
justify-content: flex-end;
margin-right:187px;
} */
.swiper {
width: 1200px;
height: 300px;
}
.text-block {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.text-block h3 {
color: #ffffff;
margin-bottom: 1em;
}
.text-block p {
font-size: 11px;
color: #ffffff;
}
.text-block__block {
width: 40%;
margin-bottom: 3em;
}
iframe {
width: 570px;
height: 302px;
}
<script src="https://unpkg.com/swiper@8/swiper-bundle.min.js"></script>
<link href="https://unpkg.com/swiper@8/swiper-bundle.min.css" rel="stylesheet" />
<section class="serviceProvided-section">
<div class="swiper-container swiper-abc">
<h2><span class="s-letter">S</span>ervice <span class="underline">Provided</span></h2>
<div class="swiper-wrapper">
<div class="swiper-slide text-block">
<div class="text-block__block">
<h3>App Development</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>Game Development</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>App Design</h3>
<p class="main-content-text"></p>
</div>
<div class="text-block__block">
<h3>Game Design</h3>
<p class="main-content-text"></p>
</div>
</div>
<div class="swiper-slide">
<iframe class="video-slider__video" src="#" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen>
</iframe>
</div>
</div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</section>
Автор решения: Александр Николаев
→ Ссылка
Вынесли navigation за приделы контейнера и дали возможность для каждой отдельной навигации крутить отдельно.
//Swiper
$('.swiper-object .js-sample-slider').each(function(index, value) {
const swiperId = $(value).data('swiper-id'); // Получаем ID карусели из data-атрибута
const swiperNav = $('.swiper-navigation[data-swiper-id="' + swiperId + '"]'); // Находим контейнер навигации по ID карусели
const swiper = new Swiper(value, {
slidesPerView: 6,
spaceBetween: 16,
lazy: true, //lazy load
//loop: true, //loop
pagination: { //pagination(dots)
el: '.swiper-pagination',
clickable: true,
},
navigation: { //navigation(arrows)
nextEl: swiperNav.find('.swiper-button-next')[0],
prevEl: swiperNav.find('.swiper-button-prev')[0],
},
breakpoints: {
640: {
slidesPerView: 2,
spaceBetween: 20,
},
768: {
slidesPerView: 4,
spaceBetween: 40,
},
1024: {
slidesPerView: 6,
spaceBetween: 16,
},
},
});
});
// Назначение событий на кнопки навигации
$('.swiper-navigation .swiper-button-prev').on('click', function() {
const swiperId = $(this).closest('.swiper-navigation').data('swiper-id');
const swiper = $('.js-sample-slider[data-swiper-id="' + swiperId + '"]')[0].swiper;
swiper.slidePrev();
});
$('.swiper-navigation .swiper-button-next').on('click', function() {
const swiperId = $(this).closest('.swiper-navigation').data('swiper-id');
const swiper = $('.js-sample-slider[data-swiper-id="' + swiperId + '"]')[0].swiper;
swiper.slideNext();
});
/*Demo*/
html,
body {
position: relative;
height: 100%;
}
body {
background: #eee;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 14px;
color: #000;
margin: 0;
padding: 0;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-slide {
text-align: center;
font-size: 18px;
background: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.swiper-slide img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.swiper-object {
position: relative;
}
.swiper-navigation {
width: 100%;
display: flex;
justify-content: space-between;
margin: 0 auto;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script>
<br>
<br>
<br>
<!-- Swiper -->
<div class="swiper-object">
<div class="js-sample-slider swiper" data-swiper-id="1">
<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 class="swiper-slide">Slide 5</div>
<div class="swiper-slide">Slide 6</div>
<div class="swiper-slide">Slide 7</div>
<div class="swiper-slide">Slide 8</div>
<div class="swiper-slide">Slide 9</div>
<div class="swiper-slide">Slide 10</div>
</div>
</div>
<div class="swiper-navigation" data-swiper-id="1">
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
<br>
<br>
<br>
<br>
<div class="swiper-object">
<div class="js-sample-slider swiper" data-swiper-id="2">
<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 class="swiper-slide">Slide 5</div>
<div class="swiper-slide">Slide 6</div>
<div class="swiper-slide">Slide 7</div>
<div class="swiper-slide">Slide 8</div>
<div class="swiper-slide">Slide 9</div>
<div class="swiper-slide">Slide 10</div>
</div>
</div>
<div class="swiper-navigation" data-swiper-id="2">
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>