Вы можете добавить css pointer-events: none
к своей кнопке. Это свойство css отключает все события на элементе. Так что-то вроде этого.
// Slick stuff
...
onAfterChange: function(slide, index) {
if(index === 4) {
$('.slick-next').css('pointer-events', 'none')
}
else {
$('.slick-next').css('pointer-events', 'all')
}
}
И что-то в том же руководстве для элемента .slick-prev
.
В этом решении вы должны получить функцию из конфигурации и только ссылку на него с чем-то вроде этого.
// Inside slick config
onAfterChange: afterChange
// Below somewhere
var afterChange = function(slide, index) { //stuff here }
Также проверьте, есть ли способ получить длину ползунка и проверить его вместо hardcoding 4
в заявлении if
. Возможно, вы можете сделать что-то вроде $('.slide').length
Вот как реализовать функцию afterChange()
.
$(document).ready(function(){
$('.scrollable').slick({
dots: false,
slidesToShow: 1,
slidesToScroll: 3,
swipeToSlide: true,
swipe: true,
arrows: true,
infinite: false,
});
$('.scrollable').on('afterChange', function (event, slick, currentSlide) {
if(currentSlide === 2) {
$('.slick-next').addClass('hidden');
}
else {
$('.slick-next').removeClass('hidden');
}
if(currentSlide === 0) {
$('.slick-prev').addClass('hidden');
}
else {
$('.slick-prev').removeClass('hidden');
}
})
});
И некоторые CSS , Если вы хотите сделать анимацию, вы должны сделать это здесь.
.slick-prev.hidden,
.slick-next.hidden {
opacity: 0;
pointer-events:none;
}
Нашел ответ. Это может быть слишком специфично для моего кода или слишком расплывчато, чтобы быть полезным, но я решил, что все равно оставлю это здесь ...
На этапе пост-обработки инициализации Spring все компоненты bean были отправлены через следующий класс весной
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
blockquote >Метод:
protected String resolPlaceholder (String, Properties, int)
blockquote>Каждый атрибут beanClass пытался разрешиться как свойство и обнулялся. Не знаю точно, почему это происходило только с юнит-тестами