我正在尝试创建一个在桌面上采用4x1布局并在移动设备中采用2x2布局的旋转木马。
这是代码,但它只是打破了旋转木马。
var swiper1;
$(window).resize(function() {
var ww = $(window).width();
if (ww <= 767) {
swiper1 = new Swiper('#swiper2', {
slidesPerView: 2,
slidesPerColumn: 2,
spaceBetween: 10
}
);
}
else {
swiper1 = new Swiper('#swiper2', {
slidesPerView: 4,
slidesPerColumn: 1,
spaceBetween: 30
}
);
}
});
最初的代码只是这个:
var swiper1 = new Swiper('#swiper2', {
slidesPerView: 4,
slidesPerColumn: 1,
spaceBetween: 30
});
这对我有用,但我希望在分辨率<= 767时将其更改为2x2
答案 0 :(得分:0)
在创建新的Swiper实例之前,您必须先销毁它。在Swiper API Docs中,“方法”部分提供了有关Swiper的destroy方法的信息。在您的情况下,您可以这样称呼它:swiper1.destroy(true, true);
。
您更新的javascript可能如下所示:
$(function () {
createSwiper();
$(window).resize(function () {
createSwiper()
});
});
function createSwiper() {
var swiper1 = $('#swiper2')[0].swiper;
if (typeof swiper1 !== 'undefined')
swiper1.destroy(true, true); //if swiper exists, destroy it so we can create a new one
var ww = $(window).width();
if (ww <= 767) {
swiper1 = new Swiper('#swiper2', {
slidesPerView: 2,
slidesPerColumn: 2,
spaceBetween: 10
});
} else {
swiper1 = new Swiper('#swiper2', {
slidesPerView: 4,
slidesPerColumn: 1,
spaceBetween: 30
});
}
}
我将create swiper逻辑放在自己的函数中,并在页面加载时调用它并将其附加到window resize事件。
这是一个Fiddle,因此您可以看到它的实际效果(调整框架窗口大小)。
答案 1 :(得分:0)
根据文档,您现在可以使用断点为不同的屏幕尺寸提供不同的参数。由于Swiper Docs没有锚点,因此请在“滑动器参数”部分中搜索“断点”。
您的情况是:
var swiper1 = new Swiper('#swiper2', {
slidesPerView: 2,
slidesPerColumn: 2,
spaceBetween: 10
// ...
breakpoints: {
// when window width is >= 767px
767: {
slidesPerView: 4,
slidesPerColumn: 1,
spaceBetween: 30,
}
}
});
注意:文档显示,在断点内,您只能使用一部分参数,不会对轮播的行为产生太大影响。