16

我已经实现了光滑的滑块,它可以在不调整浏览器大小的情况下正常工作。但是当我将浏览器的大小调整为 1024 时,响应式断点设置不起作用。

jQuery--

$('.slider').slick({
  centerMode: true,
  slidesToShow: 1,
  slidesToScroll: 1,
  dots: true,
  infinite: true,
  cssEase: 'linear',
  variableWidth: true,
  variableHeight: true,
  mobileFirst: true,
  responsive: [{
    breakpoint: 1024,
    settings: {
      slidesToShow: 4,
      slidesToScroll: 1,
      centerMode: false
    }
  }]
});

演示——https: //jsfiddle.net/squidraj/hn7xsa4y/4/

非常感谢任何帮助。

4

8 回答 8

26

将此设置添加到您的代码中;

$(".slides").slick({
    autoplay:true,
    mobileFirst:true,//add this one
}
于 2018-03-18T16:52:22.770 回答
1

在每个断点中添加slidesToShow和选项。slidesToScroll

 {
  breakpoint: 786,
    settings: {
              slidesToShow: 3,
              slidesToScroll: 1,
              }
 },
 {
  breakpoint: 568,
    settings: {
              slidesToShow: 2,
              slidesToScroll: 1
            }
  }
于 2018-05-17T11:45:44.850 回答
1

首先,“variableHeight”选项在Slick Carousel中不存在。

要解决您的问题,请删除variableWidth: true,因为这将使您的幻灯片充满轮播。如果您的页面未使用此方法,您也不能使用“mobileFirst”选项。

所以最后你的配置应该是这样的,如下

$('.slider').slick({
  centerMode: true,
  slidesToShow: 1,
  slidesToScroll: 1,
  dots: true,
  infinite: true,
  cssEase: 'linear',
  mobileFirst: true, //optional, to be used only if your page is mobile first
  responsive: [{
    breakpoint: 1024,
    settings: {
      slidesToShow: 4,
      slidesToScroll: 1,
      centerMode: false,
    }
  }]
});

此致。

于 2019-02-20T08:18:32.227 回答
0

这对我有用。

    function resetSlick($slick_slider, settings) {
            $(window).on('resize', function() {
                if ($(window).width() < 320) {
                    if ($slick_slider.hasClass('slick-initialized')) {
                        $slick_slider.slick('unslick');
                    }
                    return
                }

                if (!$slick_slider.hasClass('slick-initialized')) {
                    return $slick_slider.slick(settings);
                }
            });
        }

 slick_slider = $('.client-logos');
    settings = {
        slidesToShow: 6,
        slidesToScroll: 1,
        autoplay: true,
        autoplaySpeed: 2000,
        prevArrow: '',
        nextArrow: '',
        pauseOnHover: true,

        responsive: [
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 5,
                    slidesToScroll: 1,
                }
            },
            {
                breakpoint: 600,
                settings: {
                    slidesToShow: 3,
                    slidesToScroll: 1
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1
                }
            }
            // You can unslick at a given breakpoint now by adding:
            // settings: "unslick"
            // instead of a settings object
        ]

    };
     slick_slider = $('.container');
    settings = {
        slidesToShow: 6,
        slidesToScroll: 1,
        autoplay: true,
        autoplaySpeed: 2000,
        prevArrow: '',
        nextArrow: '',
        pauseOnHover: true,

        responsive: [
            {
                breakpoint: 1024,
                settings: {
                    slidesToShow: 5,
                    slidesToScroll: 1,
                }
            },
            {
                breakpoint: 600,
                settings: {
                    slidesToShow: 3,
                    slidesToScroll: 1
                }
            },
            {
                breakpoint: 480,
                settings: {
                    slidesToShow: 2,
                    slidesToScroll: 1
                }
            }
            // You can unslick at a given breakpoint now by adding:
            // settings: "unslick"
            // instead of a settings object
        ]

    };
    slick_slider.slick(settings);
    resetSlick(slick_slider, settings);

将此添加到您的 js 并调用滑块,如图所示。

并在你的css中制作slide display: inline-block;就是这样。将适用于所有响应式屏幕。

于 2017-04-29T21:04:15.300 回答
0

tl;dr当页面更改$('.selector').slick({...})顺序上的多个滑块有帮助时

我有类似的问题。我不明白为什么,但slidesToShow: 2对我来说没有在移动设备上生效,尽管如果你来回调整它就会生效。mobileFirst:true帮助但打破了桌面。添加两者slidesToShowslidesToScroll没有帮助。但是,当我按照它们在页面上出现的顺序放置滑块的初始化时,它就起作用了。我不明白为什么......如果有多个页面具有不同的滑块位置,我不明白如何解决这个问题......

于 2022-01-26T20:57:30.820 回答
0

mobileFirst:true,//将此添加到您的JavaScript文件中,它应该可以工作:)

于 2021-11-16T14:43:51.977 回答
-1

我不确定为什么您的 js 模板失败并显示如下:

 responsive: [{
    breakpoint: 1024,

我会跟进他们的文档、社区或提交错误。

无论如何,最好的做法是为此使用 CSS3 媒体查询。一种方法;div在滑块周围嵌套 a并定位它relative,缩放它和它的子元素,并在定义的分辨率内width: 100%;声明max和。min width这应该让你朝着正确的方向前进。确保也正确使用元视口

于 2017-02-07T01:05:16.427 回答
-2

首先,您在示例中使用旧版本的 slick。此版本不支持mobileFirst属性。variableWidth其次,如果要使用slidesToShow属性,则必须删除。

于 2017-02-06T22:14:15.063 回答