Slick 轮播:如何在纵向模式下更改轮播设置
Slick carousel: how to change carousel settings on portrait mode
我想让用户在 ipad 的纵向模式下能够滑动轮播,而在横向模式下则不能滑动。
我按照 示例来更改基于 portrait/landscape 的轮播设置,但它只在一定程度上起作用:
下面的代码适用于页面加载,但不适用于方向更改。
我想我必须以某种方式重新初始化轮播,但我不知道如何。我尝试 unslick
它,并使用新设置重新初始化它,但它似乎不起作用。
var slickSettings = { /* general settings */ };
if ($(window).innerHeight() > $(window).innerWidth()) {
//portrait
slickSettings.swipeToSlide = true; // user can now swipe
console.log('portrait');
console.log(slickSettings);
} else {
//landscape
slickSettings.swipeToSlide = false; //user cannot swipe
console.log('landscape');
console.log(slickSettings);
}
//initialize carousel
carousel.slick(slickSettings);
/**
* Does not work
**/
$(window).on('orientationchange', function () {
console.log('orientation change');
if ($(window).innerHeight() > $(window).innerWidth()) {
//portrait
carousel.slick('unslick'); //unslick
slickSettings.swipeToSlide = true; //change settings
carousel.slick(slickSettings); //reinitialize
console.log(slickSettings);
} else {
//landscape
carousel.slick('unslick'); //unslick
slickSettings.swipeToSlide = false; //change settings
carousel.slick(slickSettings); //reinitialize
console.log(slickSettings);
}
});
enable/disable 滑动的适当布尔选项是 swipe
,而不是 swipeToSlide
。
此外,您应该能够更新该选项并使用方法 slickSetOption
刷新幻灯片。这将避免取消滑动和重新加载幻灯片的需要。例如:carousel.slickSetOption('swipe', false, true)
.
来自 https://kenwheeler.github.io/slick/
的文档
slickSetOption- option : string, value : depends on option, refresh :
boolean Sets an individual value live. Set refresh to true if it's a
UI update.
我想让用户在 ipad 的纵向模式下能够滑动轮播,而在横向模式下则不能滑动。
我按照
下面的代码适用于页面加载,但不适用于方向更改。
我想我必须以某种方式重新初始化轮播,但我不知道如何。我尝试 unslick
它,并使用新设置重新初始化它,但它似乎不起作用。
var slickSettings = { /* general settings */ };
if ($(window).innerHeight() > $(window).innerWidth()) {
//portrait
slickSettings.swipeToSlide = true; // user can now swipe
console.log('portrait');
console.log(slickSettings);
} else {
//landscape
slickSettings.swipeToSlide = false; //user cannot swipe
console.log('landscape');
console.log(slickSettings);
}
//initialize carousel
carousel.slick(slickSettings);
/**
* Does not work
**/
$(window).on('orientationchange', function () {
console.log('orientation change');
if ($(window).innerHeight() > $(window).innerWidth()) {
//portrait
carousel.slick('unslick'); //unslick
slickSettings.swipeToSlide = true; //change settings
carousel.slick(slickSettings); //reinitialize
console.log(slickSettings);
} else {
//landscape
carousel.slick('unslick'); //unslick
slickSettings.swipeToSlide = false; //change settings
carousel.slick(slickSettings); //reinitialize
console.log(slickSettings);
}
});
enable/disable 滑动的适当布尔选项是 swipe
,而不是 swipeToSlide
。
此外,您应该能够更新该选项并使用方法 slickSetOption
刷新幻灯片。这将避免取消滑动和重新加载幻灯片的需要。例如:carousel.slickSetOption('swipe', false, true)
.
来自 https://kenwheeler.github.io/slick/
的文档slickSetOption- option : string, value : depends on option, refresh : boolean Sets an individual value live. Set refresh to true if it's a UI update.