JSFiddle - React, Tailwind, and code Playground

HTML

<div class="container">
  <ul id="slider">
    <li><img src="https://www.dropbox.com/s/3m9y75h947vus4v/WP_000098_1.jpg?dl=1" alt="" /></li>
    <li><img src="https://www.dropbox.com/s/xn9cdo1itkvxxzq/WP_000122.jpg?dl=1" alt="" /></li>
    <li><img src="https://www.dropbox.com/s/3k261lxwm76jzh5/WP_000125.jpg?dl=1" alt="" /></li>
    <li><img src="https://www.dropbox.com/s/lm49ldixkusry9k/WP_000161.jpg?dl=1" alt="" /></li>
    <li><img src="https://www.dropbox.com/s/enfwdolr6jmx13q/WP_000191.jpg?dl=1" alt="" /></li>
  </ul>

  <ul id="dots">   
    <li class="active"></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>

  <button id="prev">Prev</button>
  <button id="next">Next</button>

CSS

* {
  font: bold 14px Helvetica, Arial, sans-serif;
  background: #F1F1F1;
}

.container {
  width:800px;
  margin: 60px auto;
  text-align: center;
}

#slider {
  margin: 0 auto;
  list-style: none;
  position: relative;
  width: 5000px;
  height: 420px;
  padding: 10px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}

#slider img {
  position: absolute;
  top: 20px;
  left: 40px;
  max-width:600px;
  max-height:400px;
}


#dots {
  list-style:none;
  padding:0px;
  margin-bottom: 8px;

}
#dots li {
  display:inline-block;
  border-radius:10px;
  width:10px;
  height:10px;
  margin: 0 5px;
  border:2px solid #2284A1;
  background: white;
  cursor:pointer;
}
#dots li.active {
  background:#2284A1;
}

JavaScript

$(document).ready(function () {

  var change_img_time = 4000,
      transition_speed = 400;

  var listItems = $("#slider").children('li'),
      dotItems = $('#dots').children('li'),
      listLen = listItems.length,
      current,
      changeTimeout;

  function moveTo(newIndex) {

    var i = newIndex;

    if (newIndex == 'prev') {
        i = (current > 0) ? (current - 1) : (listLen - 1);
    }

    if (newIndex == 'next') {
        i = (current < listLen - 1) ? (current + 1) : 0;
    }

    dotItems.removeClass('active')
            .eq(i).addClass('active');

    listItems.fadeOut(transition_speed)
             .eq(i).fadeIn(transition_speed);

    current = i;

    //resets time interval if user clicks on slider dot; then begin automated slider
    clearTimeout(changeTimeout);
    changeTimeout = setTimeout(function() { moveTo('next'); }, change_img_time);
  };

  // Event handlers
  $("#dots li").click(function () {
    var i = $('#dots li').index(this);
    moveTo(i);
  });

  $("#prev").click(function () {
    moveTo('prev');
  });

  $("#next").click(function () {
    moveTo('next');
  });
  
  //initialize slider on load
  moveTo('next');
});