调整大小小于 1200px 时仅轮播。否则,"unslick"

On resize less than 1200px only carousel. otherwise, "unslick"

在 Slick JS 下面用于我们的组件。只有当用户从桌面调整大小到移动设备(小于 767 像素)并手动刷新页面时,它才能正常工作。

如何让这个脚本在调整自身大小的过程中工作?小于 1200px 只需要初始化 slick。不仅如此,没有光滑,只有 div 列容器。

$('.listing.columns').slick({                    
            dots: true,
            infinite: true,       
            slidesToShow: 3,
            slidesToScroll: 3,
            variableWidth: true,
            responsive: [
            {
                breakpoint: 9999,
                settings: 'unslick'
            },
            {
                breakpoint: 1200,
                settings: {
                    slidesToShow: 3,
                    slidesToScroll: 3,
                    infinite: true,
                    dots: true
                }
            },{
                breakpoint: 767,
                settings: {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                    infinite: true,
                    dots: true,
                    prevArrow: false
                }
            }]
        });

尝试添加一个 window 调整大小事件,看看您是否可以像这样观看:

$(window).on('resize', function() {
  $('.listing.columns').slick('resize');
});

另外 prevArrow 不接受布尔值, 它必须是以下类型: string (html|jQuery selector) | object (DOM node|jQuery object)

$('.listing.columns').slick({                    
    dots: true,
    infinite: true,       
    slidesToShow: 3,
    slidesToScroll: 3,
    variableWidth: true,
    responsive: [
      {
        breakpoint: 9999,
        settings: 'unslick'
      },
      {
        breakpoint: 1200,
        settings: {
          slidesToShow: 3,
          slidesToScroll: 3,
          variableWidth: true
        }
      },
      {
        breakpoint: 767,
        settings: {
          slidesToShow: 1,
          slidesToScroll: 1,
          variableWidth: false,
        }
      } 
    ]
});

$(window).on('resize', function() {
  $('.listing.columns').slick('resize');
});
.listing-el {
  line-height: 100px;
  background-color: #00DBDE;
  text-align: center;
  font-size: 30px;
  margin: 0 1rem;
  color: #fff;
  width: 200px;
}

.listing-el-small {
  width: 150px;
  background-color: #4158D0;
}

.listing-el-large {
  width: 250px;
  background-color: #FBDA61;
}

.listing-el-xlarge {
  width: 300px;
  background-color: #21D4FD;
}

@media(min-width:1201px){
  .listing-el {
    display: inline-block;
    margin: 1rem;
  }
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css" integrity="sha512-yHknP1/AwR+yx26cB1y0cjvQUMvEa2PFzt1c9LlS4pRQ5NOTZFWbhBig+X9G9eYW/8m0/4OXNx8pxJ6z57x0dw==" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.css" integrity="sha512-6lLUdeQ5uheMFbWm3CP271l14RsX1xtx+J5x2yeIDkkiBpeVTNhTqijME7GgRKKi6hCqovwCoBTlRBEC20M8Mg==" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" integrity="sha512-XtmMtDEcNz2j7ekrtHvOVR4iwwaD6o/FUJe6+Zq+HgcCsk3kj4uSQQR8weQ2QVj1o0Pk6PwYLohm206ZzNfubg==" crossorigin="anonymous"></script>

<div class="listing columns">
  <div class="listing-el listing-el-large">1</div>
  <div class="listing-el listing-el-small">2</div>
  <div class="listing-el listing-el-xlarge">3</div>
  <div class="listing-el">4</div>
  <div class="listing-el listing-el-xlarge">5</div>
  <div class="listing-el">6</div>
  <div class="listing-el">7</div>
  <div class="listing-el listing-el-small">8</div>
  <div class="listing-el">9</div>
  <div class="listing-el listing-el-large">10</div>
</div>