JSFiddle - React, Tailwind, and code Playground
by Apple Ilagan
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20130801/jquery.cycle2.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20130409/jquery.cycle2.carousel.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
<div class='main'>
<div class="home-slideshow">
<img src="http://placehold.it/950x250" alt="">
<img src="http://placehold.it/950x251" alt="">
</div>
<div class="caro">
<img src="http://placehold.it/300x300" alt="">
<img src="http://placehold.it/300x301" alt="">
<img src="http://placehold.it/300x302" alt="">
<img src="http://placehold.it/300x303" alt="">
<img src="http://placehold.it/300x304" alt="">
<img src="http://placehold.it/300x305" alt="">
</div>
</div>
CSS
.main {
max-width: 950px;
margin: auto;
}
.home-slideshow {
margin-bottom: 150px;
}
.home-slideshow img {
width: 100%;
}
JavaScript
function buildCarousel(visibleSlides) {
$('.caro').cycle({
fx: 'carousel',
speed: 600,
slides: 'img',
carouselVisible: visibleSlides,
carouselFluid: true
});
}
function buildSlideshow() {
$('.home-slideshow').cycle({
fx: 'fade',
slides: 'img',
timeout: 12000
});
}
function initCycle() {
var width = $(document).width();
var visibleSlides = 5;
if (width < 400) {
visibleSlides = 1
} else if (width < 700) {
visibleSlides = 3
} else {
visibleSlides = 5
};
buildSlideshow();
buildCarousel(visibleSlides);
}
function reinit_cycle() {
var width = $(window).width();
var destroyCarousel = function() {
$('.caro').cycle('destroy');
}
if (width < 400) {
destroyCarousel();
reinitCycle(1);
} else if (width > 400 && width < 700) {
destroyCarousel();
reinitCycle(3);
} else {
destroyCarousel();
reinitCycle(5);
}
}
function reinitCycle(visibleSlides) {
buildCarousel(visibleSlides);
}
var reinitTimer;
$(window).resize(function () {
clearTimeout(reinitTimer);
reinitTimer = setTimeout(reinit_cycle, 100);
});
$(document).ready(function () {
initCycle();
});