【问题标题】:Slick carousel shows two rows instead of one光滑的轮播显示两行而不是一
【发布时间】:2020-07-13 17:43:51
【问题描述】:

我正在建立一个网站,我正在为一些滑块使用Slick 轮播。我遇到了一个问题,我将其设置为 3 张幻灯片,并且如果幻灯片超过 3 张,则可以选择显示两行,但是,当只有 3 张幻灯片时,出于某种原因,它会在两行中显示它们。这是一个JSFiddle 演示它。

这是 JavaScript 代码:

var slickOptions = {
        slidesToShow: 3,
        slidesToScroll: 3,
        rows: 2,
        dots: true,
        arrows: false,
        dotsClass: 'slick-dots slick-dots-black',
        adaptiveHeight: true,
    };
$('#slides').slick(slickOptions);

我尝试在谷歌上搜索该问题,但找不到解决方案。

有什么想法吗?

【问题讨论】:

    标签: javascript jquery slick.js


    【解决方案1】:

    您可以通过获取幻灯片总数然后有条件地定义rows 设置的值来完成此操作。您还应该设置slidesPerRow 的值。

    const numSlides = $('.piece').length;
    
    const slickOptions = {
            
            rows: (numSlides > 3 ? 2 : 1),
            slidesPerRow: 3,
            slidesToShow: (numSlides > 3 ? 1 : 3),
            slidesToScroll: 1,
    
            dots: true,
            arrows: false,
            dotsClass: 'slick-dots slick-dots-black',
            adaptiveHeight: true
    };
    
    $('#slides').slick(slickOptions);
    

    【讨论】:

    • 这解决了它,但它引入了另一个问题。现在,由于某种原因,slick-track 没有占据父元素的整个宽度。知道为什么吗?这是 JSFiddle:jsfiddle.net/petarvasilev/moq3ftu1/8
    • 我认为您可以通过根据幻灯片数量更改 slidesToShow 并设置 slidesToScroll: 1 来解决此问题。我已在上面的答案中添加了这些更改。
    • 这并没有解决它,这是非常奇怪的行为......在 jsfiddle 中尝试一下
    • 这在您的 jsfiddle 中对我有用,如果您在每张幻灯片 <div> 中插入一些文本内容,这一点会更加明显。我看到的剩余问题是,当您只有一行时,Slick 会用自己的幻灯片 ID(例如 id="slide-4")替换您的幻灯片 ID,因此您会丢失单独的背景颜色。
    • 如果我只是将上面的代码放在 jsfidde 中代替您的代码,我会看到 3 张和 5 张幻灯片的全角幻灯片。您是否对设置进行其他更改?
    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2021-03-15
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多