swiperと非常に単純な画像スライダーを作成し、スワイパーの「paginationCustomRender」jQueryとデータ属性を使用してカスタムページを追加しました。小さな関数は、スライダに、ページング内のラベルの1つがクリックされたときに目的のスライドを「slideTo()」するように指示しますが、一度しか機能しない場合、関数は再び開始しません。 私が検索したことから、ほとんどの人がスワイパーの組み込みオプションを使用していないことを知り、自分自身で作成したので、私は何をすべきか、それを行うための最良の方法は何かを考えていました。ここでは、事前スワイパーのカスタムページネーションは1回だけスライドします
で
おかげで私のHTMLです:
<div class="main_slider_wrapper left">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="slide_item swiper-slide" data-name="slide-1">
<a href="#">
<img src="assets/img/pages/home/main-slider/Banner1.jpg" alt="">
</a>
</div>
<!-- /slide_item -->
<div class="slide_item swiper-slide" data-name="slide-2">
<a href="#">
<img src="assets/img/pages/home/main-slider/Banner2.jpg" alt="">
</a>
</div>
<!-- /slide_item -->
<div class="slide_item swiper-slide" data-name="slide-3">
<a href="#">
<img src="assets/img/pages/home/main-slider/Banner3.jpg" alt="">
</a>
</div>
<!-- /slide_item -->
</div>
<!-- /swiper-wrapper -->
<div class="swiper-button-prev fawesome fa-chevron-left"></div>
<div class="swiper-button-next fawesome fa-chevron-right"></div>
<div class="main_slider_pagination_wrapper swiper-pagination"></div>
</div>
<!-- /swiper-container -->
</div>
、ここでは、JSです:
function mainSliderFn() {
var mainSliderElement = $('.main_slider_wrapper .swiper-container')[0];
var mainSliderNext = $('.main_slider_wrapper .swiper-button-next')[0];
var mainSliderPrev = $('.main_slider_wrapper .swiper-button-prev')[0];
mainSlider = new Swiper(mainSliderElement, {
direction: 'horizontal',
loop: false,
spaceBetween: 0,
slidesPerView: 1,
autoResize: false,
speed: 1500,
nextButton: mainSliderNext,
prevButton: mainSliderPrev,
pagination: '.main_slider_pagination_wrapper',
paginationClickable: true,
paginationType: "custom",
paginationCustomRender: function(swiper, current, total) {
var names = [];
$(".main_slider_wrapper .slide_item").each(function(i) {
names.push($(this).data("name"));
});
var text = "<span style='background-color:white;padding:20px;'>";
for (let i = 1; i <= total; i++) {
if (current != i) {
text += "<span class='main_slider_label swiper-pagination-clickable' data-index='"+i+"'>" + names[i-1] + "</span>";
} else {
text += "<span class='main_slider_label swiper-pagination-clickable active_label' data-index='"+i+"'>" + names[i-1] + "</span>";
}
}
text += "</span>";
return text;
},
});
};
function clickableLabelsFn(){
$('.main_slider_label').on('click', function(e){
var clicked = $(this);
var mytarget = $(clicked).data('index');
if(!$(clicked).hasClass('active_label'))
{
mainSlider.slideTo(mytarget-1);
}
});
};
$(document).ready(function() {
mainSliderFn();
clickableLabelsFn();
});
感謝をあなたの変更のスライドを追加しますか? – Dan
@ダン申し訳ありませんが、今はプロジェクトでかなり忙しいですが、私はデモをa.s.a.p.あなたが急いでいる場合は、質問に追加したサンプルコードを使用して作成することができます。 – user1435897