JSFiddle - React, Tailwind, and code Playground

by Collin Krueger

HTML

<div id="slideshow"> <span class="buttons">
                 <input type="button" id="choosePic1" class="slideshowSelect" value="1">
                <input type="button" id="choosePic2" class="slideshowSelect" value="2">
                <input type="button" id="choosePic3" class="slideshowSelect"value="3" >
                <input type="button" id="choosePic4" class="slideshowSelect" value="4">
                <input type="button" id="choosePic5" class="slideshowSelect" value="5">
                </span> 
    <div class="current">
        <img src="http://lorempixel.com/400/200/abstract/" alt="Img" height="382" width="594">
    </div>
    <div>
        <img src="http://lorempixel.com/400/200/people/" alt="Img" height="382" width="594">
    </div>
    <div>
        <img src="http://lorempixel.com/400/200/sports/" alt="Img" height="382" width="594">
    </div>
    <div>
        <img src="http://lorempixel.com/400/200/animals/" alt="Img" height="382" width="594">
    </div>
    <div>
        <img src="http://lorempixel.com/400/200/nature/" alt="Img" height="382" width="594">
    </div>
</div>

CSS

#slideshow div {
    z-index: 0;
    position: absolute;
}
#slideshow div.previous {
    z-index: 1;
}
#slideshow div.current {
    z-index: 2;
}
.slideshowSelect {
   height:22px;
    width: 22px;
}

JavaScript

$(function () {
    "use strict";
    setInterval(function () {
        rotateImages()
    }, 4000);

    var pic1 = $('#slideshow div:first');
    var pic2 = $('#slideshow div:nth-child(2)');
    var pic3 = $('#slideshow div:nth-child(3)');
    var pic4 = $('#slideshow div:nth-child(4)');
    var pic5 = $('#slideshow div:last');

    $("#choosePic1").click(rotateImages(pic1));
    $("#choosePic2").click(rotateImages(pic2));
    $("#choosePic3").click(rotateImages(pic3));
    $("#choosePic4").click(rotateImages(pic4));
    $("#choosePic5").click(rotateImages(pic5));

});

function rotateImages(manualChange) {


    var CurrentPhoto = $('#slideshow .current');
    if (manualChange !== null) {
        CurrentPhoto = manualChange;
    }
    var NextPhoto = CurrentPhoto.next();
    if (NextPhoto.length === 0) {
        NextPhoto = $('#slideshow div:first');
    }
    CurrentPhoto.removeClass('current').addClass('previous');
    NextPhoto.css({
        opacity: 0.0
    }).addClass('current')
        .animate({
        opacity: 1.0
    }, 1000,

    function () {
        CurrentPhoto.removeClass('previous');
    });
}