我需要删除特定浏览器宽度上光滑滑块的最后两张幻灯片。
我想:
$('.slider').slick('slickRemove', slideIndex - 1);
至少会做到最后一次。但我错了。
这是小提琴:https://jsfiddle.net/osywsskz/
...
如果我选择特定的幻灯片编号:
$('.slider').slick('slickRemove',4);
它有效。但幻灯片的数量各不相同,所以这不是解决方案
答案 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);
}