【发布时间】:2020-06-23 01:59:06
【问题描述】:
我想让用户在 ipad 的纵向模式下能够滑动轮播,而在横向模式下不能滑动。
我按照this的例子来改变基于纵向/横向的轮播设置,但它只在一定程度上起作用:
以下代码适用于页面加载,但不适用于方向更改。
我想我必须以某种方式重新初始化轮播,但我不知道该怎么做。我尝试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);
}
});
【问题讨论】:
-
您正在更新设置,是否还需要重新初始化轮播?
-
这就是我认为我对
carousel.slick(slickSettings);所做的事情,但它似乎不起作用。我是不是重新初始化错了? -
我认为可行的流程是:
carousel.slick('unslick'); //unslick->slickSettings.swipeToSlide = false; //change settings->carousel.slick(slickSettings); //reinitialize -
您能否更新问题以包含 stacksn-p?那么我们就可以看到正在运行的错误了吗?
标签: javascript jquery slick.js