Created
January 29, 2018 12:24
-
-
Save vensires/274ba714079129b37838dde4817d9ff6 to your computer and use it in GitHub Desktop.
Slick slider adds some .slick-cloned divs before and after the original slide content. These divs don't get the slick-active class but for theming purposes this might be required. The following code adds the .slick-cloned-active class to .slick-cloned elements when active.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function($) { | |
// Initialize slick slider on elements having the .slick class. | |
var slider = $('.slick'); | |
slider.slick({ | |
// There is no reason for cloned divs to appear when infinite is set to false. | |
infinite: true | |
}); | |
slider.on('beforeChange', function(event, slick, currentSlide, targetSlide) { | |
var $targetSlide = $(slick.$slides[targetSlide]), | |
$clonedSlide; | |
// The following line will play well if only one slick exists on the page. | |
slider.find('.slick-cloned').removeClass('slick-cloned-active'); | |
if (targetSlide > currentSlide) { | |
// Go back. | |
$clonedSlide = slider.find('[data-slick-index="' + (targetSlide - slick.$slides.length) + '"]'); | |
} | |
else if (currentSlide > targetSlide) { | |
// Go forth. | |
$clonedSlide = slider.find('[data-slick-index="' + (targetSlide + slick.$slides.length) + '"]'); | |
} | |
if ($clonedSlide && $clonedSlide.length) { | |
$clonedSlide.addClass('slick-cloned-active'); | |
} | |
}); | |
})(jQuery); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment