Javascript 滑动转盘自适应高度在显示2张幻灯片时不起作用

Javascript 滑动转盘自适应高度在显示2张幻灯片时不起作用,javascript,jquery,carousel,slick.js,Javascript,Jquery,Carousel,Slick.js,我正在建立一个网站与一些滑块和使用。通常,当我一次放映一张幻灯片时,自适应高度起作用,但当同时放映两张幻灯片时,自适应高度不起作用。这是一个重复出现的问题 下面是JavaScript: var options = { slidesToShow: 2, slidesToScroll: 2, dots: true, arrows: false, dotsClass: 'slick-dots slick-dots-black', adaptiveHeight: true, };

我正在建立一个网站与一些滑块和使用。通常,当我一次放映一张幻灯片时,自适应高度起作用,但当同时放映两张幻灯片时,自适应高度不起作用。这是一个重复出现的问题

下面是JavaScript:

var options = {
  slidesToShow: 2,
  slidesToScroll: 2,
  dots: true,
  arrows: false,
  dotsClass: 'slick-dots slick-dots-black',
  adaptiveHeight: true,
};

$('.slider').slick(options);
我一直在谷歌上搜索这个问题,似乎其他人也有类似的问题,但我找不到解决办法


任何想法都值得赞赏

是的,看来slick只允许在单个滑动转盘上使用
自适应高度

在on
adaptiveHeight
中,它显示以下内容

为单滑块水平转盘启用自适应高度

有趣的是,我从来没有料到slick会有这种行为,我假设自适应高度在所有情况下都有效。但显然不是

这是一个有点黑客,但可能涵盖了一个解决方案,为您的网站,使自适应高度的多幻灯片滑块。这基本上可以找到当前显示的最高幻灯片,并为
.slick列表添加一个高度。在该元素上使用css transition可以产生平滑的
自适应高度
效果

此外,我们还有一个
.on('resize')
事件,在幻灯片内容为流体且幻灯片高度相应改变时,该事件将重新运行滑块高度检查

阅读我在脚本中的评论,看看发生了什么

这里还有小提琴

//我的滑动条选项
变量选项={
幻灯片放映:2,
幻灯片滚动:2,
点:是的,
箭头:错,
圆点类:“光滑圆点光滑圆点黑色”,
自适应高度:正确,
};
//我的光滑滑块作为常量对象
常量mySlider=$('.slider')。在('init',函数(slick)上{
//在初始化时运行我们的多滑块自适应高度函数
多滑块自适应高度(this);
}).on('beforeChange',函数(slick、currentSlide、nextSlide){
//在更改前运行我们的多滑块自适应高度功能
多滑块自适应高度(this);
}).slick(选项);
//我们的多滑块自适应高度函数通过滑块对象
函数multiSlideAdaptiveHeight(滑块){
//让我们的车停下来
让activeSlides=[];
让tallestSlide=0;
//非常短的延迟,以便我们获得正确的活动幻灯片
setTimeout(函数(){
//循环浏览当前滑块的每个活动幻灯片
$('.slick track.slick active',滑块)。每个(功能(项目){
//将当前活动幻灯片高度添加到活动幻灯片阵列
activeSlides[item]=$(this.outerHeight();
});
//对于每个活动幻灯片高度
activeSlides.forEach(函数(项){
//如果当前活动幻灯片高度大于最高幻灯片高度
如果(项目>高度幻灯片){
//将最高滑动高度替代为当前活动滑动高度
高度幻灯片=项目;
}
});
//将当前滑块滑动列表高度设置为当前活动的最高滑块高度
$('.slick list',滑块).height(tallestSlide);
}, 10);
}
//调整窗口大小时
$(窗口).on('resize',function()){
//运行我们的多滑块自适应高度功能,以防当前滑块活动幻灯片响应性地更改高度
多滑块自适应高度(mySlider);
});
正文{
背景:天蓝色;
保证金:0;
填充:20px;
}
.花里胡哨的名单{
过渡:所有。5s轻松;
}
阿斯利德先生{
背景:黄色;
}

1.
2
2
2 3
3
3
3
3 4
4
4 5. 6
6
6 7
7
7
7
7
7 8
8 9
9
9
9
9
9
9 10
10
10 11 12
12
是的,看来slick只允许在单滑动转盘上使用
自适应高度

在on
adaptiveHeight
中,它显示以下内容

为单滑块水平转盘启用自适应高度

有趣的是,我从来没有料到slick会有这种行为,我假设自适应高度在所有情况下都有效。但显然不是

这是一个有点黑客,但可能涵盖了一个解决方案,为您的网站,使自适应高度的多幻灯片滑块。这基本上可以找到当前显示的最高幻灯片,并为
.slick列表添加一个高度。在该元素上使用css transition可以产生平滑的
自适应高度
效果

此外,我们还有一个
.on('resize')
事件,在幻灯片内容为流体且幻灯片高度相应改变时,该事件将重新运行滑块高度检查

阅读我在脚本中的评论,看看发生了什么

这里还有小提琴

//我的滑动条选项
变量选项={
幻灯片放映:2,
幻灯片滚动:2,
点:是的,
箭头:错,
圆点类:“光滑圆点光滑圆点黑色”,
自适应高度:正确,
};
//我的光滑滑块作为常量对象
常量mySlider=$('.slider')。在('init',函数(slick)上{
//在初始化时运行我们的多滑块自适应高度函数
多滑块自适应高度(this);
}).on('beforeChange',函数(slick、currentSlide、nextSlide){
//在更改前运行我们的多滑块自适应高度功能
多滑块自适应高度(this);
}).slick(选项);
//我们的多滑块自适应高度函数通过滑块对象
函数multiSlideAdaptiveHeight(滑块){
//让我们的车停下来
让activeSlides=[];
让tallestSlide=0;
//非常短的延迟,以便我们获得正确的活动幻灯片
setTimeout(函数(){
//循环浏览当前滑块的每个活动幻灯片
$('.slick track.slick active',滑块)。每个(功能(项目){
//将当前活动幻灯片高度添加到活动幻灯片阵列
activeSlides[item]=$(this.outerHeight();
});
//对于每个活动幻灯片高度
activeSlides.forEach(函数(项){
//如果当前活动幻灯片高度大于最高幻灯片高度
如果(项目>高度幻灯片){
//将最高滑动高度替代为当前活动滑动高度
高度幻灯片=项目;
}
});
//设置当前值