boilerplate.js
Version:
Development Tools
47 lines (36 loc) • 2.31 kB
JavaScript
components('slick.init', function () {
window.queue = window.queue || {};
queue.slick = queue.slick || [];
queue.asNavFor = queue.asNavFor || [];
queue.slick.forEach(slick => slick());
queue.asNavFor.forEach(slick => slick());
// Slick Lander Component
let elements = document.querySelectorAll('[slick]');
if (elements.length === 0) return;
Defer.js([libraries.jQuery, libraries.slickJS], () => {
elements.forEach(element => {
$(element).slick({
dots: element.getAttribute('slick-dots') ? JSON.parse(element.getAttribute('slick-dots')) : false,
arrows: element.getAttribute('slick-arrows') ? JSON.parse(element.getAttribute('slick-arrows')) : true,
autoplay: element.getAttribute('slick-autoplay') ? JSON.parse(element.getAttribute('slick-autoplay')) : false,
autoplaySpeed: element.getAttribute('slick-autoplaySpeed') ? parseInt(element.getAttribute('slick-autoplaySpeed')) : 5000,
infinite: element.getAttribute('slick-infinite') ? JSON.parse(element.getAttribute('slick-infinite')) : true,
slidesToShow: parseInt(element.getAttribute('slick-slidesToShow')) || 1,
slidesToScroll: parseInt(element.getAttribute('slick-slidesToScroll')) || parseInt(element.getAttribute('slick-slidesToShow')) || 1,
responsive: [
{
breakpoint: 1245,
settings: {
slidesToShow: parseInt(element.getAttribute('slick-slidesToShow-mobile')) || 1,
slidesToScroll: parseInt(element.getAttribute('slick-slidesToScroll-mobile')) || parseInt(element.getAttribute('slick-slidesToShow-mobile')) || 1,
dots: element.getAttribute('slick-dots-mobile') ? JSON.parse(element.getAttribute('slick-dots-mobile')) : false,
arrows: element.getAttribute('slick-arrows-mobile') ? JSON.parse(element.getAttribute('slick-arrows-mobile')) : true,
}
}
]
});
element.style.visibility = 'visible';
element.style.height = 'auto';
});
});
});