仅在移动屏幕尺寸上使用slick.js

use*_*737 6 javascript jquery carousel responsive-design

我只希望slick.js插件在移动屏幕尺寸时处于活动状态,例如450px以下.我希望在页面加载或浏览器调整大小时发生这种情况.如果我加载页面或调整到正确的宽度但如果我调整浏览器到大于450像素Slick.js不正常工作.可以这样做吗?

   $(document).ready(function(){
    $(window).resize(function(){
      if($(window).width() < 450) {
        $('.round-card-slick').slick({
        });
      } else {
        $('.round-card-slick').unslick();
      }
    });
  }); 
Run Code Online (Sandbox Code Playgroud)

Jam*_*aly 17

顺便说一句,现在你可以直接在光滑的响应设置对象中执行此操作

mobileFirst: true, 
responsive: [
   {
      breakpoint: 480,
      settings: "unslick"
   }
]
Run Code Online (Sandbox Code Playgroud)

  • 要使上述代码在移动设备上工作,请添加此设置,`mobileFirst:true` (4认同)
  • 这与他们想要的相反吗?他们只希望Slick在移动设备上活动而不在桌面设备上.当窗口为480px及以下时,上面的代码触发Slick. (3认同)

use*_*737 3

问题是即使在不光滑之后,不光滑仍然会在调整大小时触发,这反过来会破坏它。我的同事想出了一个解决办法,就像这张支票一样。

var target = $('.slick-mobile-gallery');
if(target.hasClass('slick-initialized'))
  target.unslick();
Run Code Online (Sandbox Code Playgroud)

更新:

解决方案是插件中的内置功能slick,@James Daly 的答案是这个问题的真正答案。