JSFiddle - React, Tailwind, and code Playground

by pradeep

HTML

<div class="mask">
<ul class="images">
   <li>
      <img width="270" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/97/The_Earth_seen_from_Apollo_17.jpg/270px-The_Earth_seen_from_Apollo_17.jpg" />
   </li>
   <li>
      <img width="270" src="http://www.mallorcaweb.net/masm/Planetas/Jupiter.jpg" />
   </li>
    <li>
      <img width="270" src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/280px-FullMoon2010.jpg" />
   </li>
   <li>
      <img width="270" src="http://static.ddmcdn.com/gif/sun-update-1.jpg" />
   </li>
   <li>
      <img width="270" src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Neptune.jpg/240px-Neptune.jpg" />
   </li>
</ul>
</div>

<ul class="triggers">
   <li>0</li>
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
</ul>
<span class="control prev">Prev</span>
<span class="control next">Next</span>

CSS

body { background-color:#000; position:relative; font-size:14px; font-family:arial;}
.mask { float:left; margin:40px; width:270px; height:266px; overflow:hidden;  }
ul.images { position:relative; top:0px;left:0px; }
  ul.images li { float:left; }

ul.triggers { position:absolute; top:310px; left:80px; }
    ul.triggers li { 
        float:left; margin:0 5px; font: bold 16px arial; cursor:pointer;
        background-color:#ccc; color:#000; padding:10px;
    }ul.triggers li.selected {background-color:red; color:#000;}


.control {position:absolute; top: 380px; color:#fff; cursor:pointer;}
.prev { left:120px; }
.next { left:180px; }

JavaScript

var triggers = $('ul.triggers li');
var images = $('ul.images li');
var lastElem = triggers.length-1;
var mask = $('.mask ul.images');
var imgWidth = images.width();
var target;

triggers.first().addClass('selected');
mask.css('width', imgWidth*(lastElem+1) +'px');

function sliderResponse(target) {
    mask.stop(true,false).animate({'left':'-'+ imgWidth*target +'px'},300);
    triggers.removeClass('selected').eq(target).addClass('selected');
}

triggers.click(function() {
    if ( !$(this).hasClass('selected') ) {
        target = $(this).index();
        sliderResponse(target);
        resetTiming();
    }
});
$('.next').click(function() {
    target = $('ul.triggers li.selected').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
    resetTiming();
});
$('.prev').click(function() {
    target = $('ul.triggers li.selected').index();
    lastElem = triggers.length-1;
    target === 0 ? target = lastElem : target = target-1;
    sliderResponse(target);
    resetTiming();
});
function sliderTiming() {
    target = $('ul.triggers li.selected').index();
    target === lastElem ? target = 0 : target = target+1;
    sliderResponse(target);
}
var timingRun = setInterval(function() { sliderTiming(); },5000);
function resetTiming() {
    clearInterval(timingRun);
    timingRun = setInterval(function() { sliderTiming(); },5000);
}