在 Slick 滑块中添加自定义 class,如数字递增

Adding custom class in Slick slider like increment in number

如何在如下结构的光滑滑块中添加自定义 class

<div class="slick-slide">...</div>
<div class="slick-slide">...</div>
<div class="slick-slide slick-active slick-slide1">...</div>
<div class="slick-slide slick-active slick-slide2">...</div>
<div class="slick-slide slick-active slick-slide3">...</div>
<div class="slick-slide slick-active slick-slide4">...</div>
<div class="slick-slide slick-active slick-slide5">...</div>
<div class="slick-slide">...</div>
<div class="slick-slide">...</div>

我只需要将 class 添加到活动滑块(“.slick-active”)。并且需要在更改幻灯片时更改 class。

我正在使用以下代码,但它不起作用。

$(".slider").slick({
    dots: false,
    arrows : true,
    infinite: true,
    slidesToShow: 5,
    slidesToScroll: 1,
    speed: 500
});

$('.slider').on({beforeChange: function (event, slick, current_slide_index, next_slide_index) {
   $('.slick-slide').removeClass('slick-main-active');
   $('.slick-slide[data-index=' + next_slide_index + ']').addClass('slick-main-active');
}})

Note: I refer this code from another site. May be this is wrong, i just showing what i did.

假设您想要为当前 X 个活动幻灯片中的每一个自定义选择器,这应该可以做到 (CodePen here):

$("#test").on("init", function(event, slick) {
    addCustomSlickAttributes();
})

$("#test").slick({
    dots: false,
    arrows : true,
    infinite: true,
    slidesToShow: 5,
    slidesToScroll: 1,
    speed: 500
})

$("#test").on("afterChange", function(event, slick, current_slide_index, next_slide_index) {
    addCustomSlickAttributes();
})

function addCustomSlickAttributes() {
    // Remove old attributes
    $("[data-my-slick-attr]").removeAttr("data-my-slick-attr");

    // Iterate through each active slide and add our custom attribute
    $(".slick-active").each(function(index, el) {
        $(el).attr("data-my-slick-attr", index);
    })
}

然后您可以使用 [data-my-slick-attr="0"][data-my-slick-attr="1"] 等定位活动元素