JSFiddle - React, Tailwind, and code Playground
HTML
<div class="slide">
<h1>Slide 1</h1>
</div><!-- .slide -->
<div class="slide" style="display:none">
<h1>Slide 2</h1>
</div><!-- .slide -->
<div class="slide" style="display:none">
<h1>Slide 3</h1>
</div><!-- .slide -->
<ul class="indicator">
<li class="active first">Buy</li>
<li class="second">Build</li>
<li class="third">Hire</li>
</ul><!-- .indicator -->
CSS
li {
float: left;
padding: 10px;
background: blue;
color: white;
}
.slide {
width: 200px;
height: 200px;
background: #CCC;
}
JavaScript
var slides = $(".slide");
var indicators = $(".indicator li");
var currentSlide = 1;
var incrementSlide = function () {
currentSlide = currentSlide === 2 ? 0 : currentSlide + 1;
};
var switchSlide = function () {
if (currentSlide === 0) {
var onDeck = 1;
var inTheHole = 2;
} else if (currentSlide === 1) {
var onDeck = 2;
var inTheHole = 0;
} else {
var onDeck = 0;
var inTheHole = 1;
}
indicators.removeClass("active");
$(indicators[currentSlide]).addClass("active");
$(slides[onDeck]).hide();
$(slides[inTheHole]).fadeOut(200, function () {
$(slides[currentSlide]).fadeIn(200);
incrementSlide();
});
};
var interval = setInterval(switchSlide, 7000);
indicators.click(function () {
clearInterval(interval);
if ($(this).hasClass("first")) {
currentSlide = 0;
} else if ($(this).hasClass("second")) {
currentSlide = 1;
} else if ($(this).hasClass("third")) {
currentSlide = 2;
}
switchSlide();
interval = setInterval(switchSlide, 7000);
});