删除最后两张幻灯片

时间:2017-11-06 14:42:42

标签: javascript jquery slick.js

我需要删除特定浏览器宽度上光滑滑块的最后两张幻灯片。

我想:

$('.slider').slick('slickRemove', slideIndex - 1);

至少会做到最后一次。但我错了。

这是小提琴:https://jsfiddle.net/osywsskz/

...

如果我选择特定的幻灯片编号:

$('.slider').slick('slickRemove',4);

它有效。但幻灯片的数量各不相同,所以这不是解决方案

3 个答案:

答案 0 :(得分:1)

我们可以获得幻灯片计数:

$(".slider").slick({
  autoplay: false,
  dots: true,
});

$(document).ready(function(){

  var docWidth = $(document).width();    

  function getLastSlide(){
    return ($(".slider").slick("getSlick").slideCount - 1);
  }

  var deleteCount = 2;

  if(docWidth>500 && docWidth<700 )
  {
    for (var i = 0; i < deleteCount; i++) {
      $('.slider').slick('slickRemove', getLastSlide());
    }
  }
});

答案 1 :(得分:0)

直接来自the github page of slick.js

  

slickRemove
  index,removeBefore
  按索引删除幻灯片。如果removeBefore   设置为true,删除前面的索引,或者如果没有则删除第一张幻灯片   index已指定。 如果removeBefore设置为false,请删除幻灯片   跟踪索引,如果未设置索引,则为最后一张幻灯片。

所以$('.slider').slick('slickRemove', false);就可以了! 请参阅小提琴:https://jsfiddle.net/0ufomhmz/

答案 2 :(得分:0)

您需要将slideIndex定义为幻灯片的数量。这可以按如下方式完成

var slideIndex = $(".slider > *").length

如果要删除最后两张幻灯片,以下代码将起作用(不是最优雅的)

$('.slider').slick('slickRemove', slideIndex);
$('.slider').slick('slickRemove', slideIndex - 1);

所有这些都在你的if语句中,所以最终的代码看起来像这个

   var docWidth = $( document ).width();    

if(docWidth>500 && docWidth<700 )
{
  var slideIndex = $(".slider > *").length
  $('.slider').slick('slickRemove', slideIndex);
  $('.slider').slick('slickRemove', slideIndex - 1);
}