JSFiddle - React, Tailwind, and code Playground

HTML

<div class="slider">
  <ul>
    <li>
      <img src="http://keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image1.jpg" alt="" class="active">
    </li>
    <li>
      <img src="https://www.w3schools.com/css/img_lights.jpg" alt="">
    </li>      
    <li>
      <img src="http://keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image2.jpg" alt="">
    </li>
    <li>
      <img src="http://images.all-free-download.com/images/graphiclarge/a_london_cityscape_515129.jpg" alt="">
    </li>
    <li>
      <img src="https://image.jimcdn.com/app/cms/image/transf/dimension=1920x400:format=jpg/path/s86d6d6c688ca86fa/image/ie4265a3cd27b2997/version/1451246087/image.jpg" alt="">
    </li>
  </ul>
</div>

<div class="back">Back</div>
<div class="next">Next</div>

CSS

.slider {
    overflow-x: hidden;    
    height: 400px;
    width: 100%;
}
.slider ul {
  width: 500%;
}
.slider ul li {
  float: left;
  list-style: none;
  position: relative;  
  transition: all 0.65s;
}
.next, .back {
  width: 100px; 
  padding: 5px;
  text-align: center;
  background-color: skyblue;
  float: left;
  margin: 10px;
  cursor: pointer;
}

JavaScript

var i = 0;
$('.next').bind('click', function() {			
  slideRight();
});

$('.back').bind('click', function() {
	slideLeft();
});

function slideRight(){
	if (i < 4) {  	
		$('li').animate({'left': '-=600px'}, 300).delay(600);  
    i++;
  }
  console.log($('li:first').position().left);
  console.log(i);
}

function slideLeft(){
	if (i > 0) {
    if ($('li:first').position().left < 0) {  	
      $('li').animate({'left': '+=600px'}, 300).delay(600);
      i--;
    }
  }
  console.log(i);
}

var slider = document.getElementsByClassName('slider')[0];
slider.addEventListener('touchstart', handleTouchStart, false);        
slider.addEventListener('touchmove', handleTouchMove, false);

var xDown = null;                                                        
var yDown = null;                                                        

function handleTouchStart(evt) {                                         
    xDown = evt.touches[0].clientX;                                      
    yDown = evt.touches[0].clientY;                                      
};                                                

function handleTouchMove(evt) {
    if ( ! xDown || ! yDown ) {
        return;
    }

    var xUp = evt.touches[0].clientX;                                    
    var yUp = evt.touches[0].clientY;

    var xDiff = xDown - xUp;
    var yDiff = yDown - yUp;

    if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {/*most significant*/
        if ( xDiff > 0 ) {
            /* left swipe */ 
            slideRight();
        } else {
            /* right swipe */
            slideLeft();
        }                       
    } else {
        if ( yDiff > 0 ) {
            /* up swipe */ 
        } else { 
            /* down swipe */
        }                                                                 
    }
    /* reset values */
    xDown = null;
    yDown = null;                                             
};