Согласно документации здесь: http://idangero.us/swiper/api/, мне нужно вызвать mySwiper.update() после того, как я скрою/покажу слайды вручную. Но в моем случае это не всегда работает.
Я искал эту проблему, но наткнулся только на следующие решения, которые должны были, но по какой-то причине не работать:
- mySwiper.update(), как я упоминал ранее
- observer: true, ObserveParents: true при инициализации swiper .
Вот как я инициализирую Swiper, так как мне нужно 2 строки и 3 столбца для отображения данных.
Код: Выделить всё
var swiper = new Swiper('.swiper-container', {
slidesPerView: 3,
slidesPerColumn: 2,
spaceBetween: 30,
observer: true,
observeParents: true,
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
pagination: {
el: '.swiper-pagination',
clickable: true,
},
});
Код: Выделить всё
[img]./images/plu2.jpg[/img]
Default Lorem ipsum dolor sit amet.
[img]./images/plu2.jpg[/img]
Default Lorem ipsum dolor sit amet.
[img]./images/plu2.jpg[/img]
Default Lorem ipsum dolor sit amet.
Код: Выделить всё
// 'category1' button/tab selector
$('#category1').on('click', function() {
$('.swiper-slide').hide();
$('.Category1').show();
swiper.update(true);
});
// category2 button/tab selector
$('#category2').on('click', function() {
$('.swiper-slide').hide();
$('.Category1').show();
swiper.update();
});
// 'All' button/tab selector - to show all slides, this i use only to show animation that all slides were loaded, this is working fine every time with swiper update
$('#all').on('click', function() {
$('.swiper-slide').hide();
$('.swiper-slide').show();
swiper.update();
});
И если проблема не ясна, я вызываю swiper.update(), чтобы позиции слайдов обновлялись, как когда слайды фильтруются (скрываются/показываются), остальные отображаются не на своем месте.
Подробнее здесь: https://stackoverflow.com/questions/493 ... -of-slides