JSFiddle - React, Tailwind, and code Playground

by OwenMelbz

HTML

<!-- Slider Start -->
    <div id="slider" class="">
        <div id="slide-wrap">
        <ul>
            <li>slide 1</li>
            <li>slide 2</li>
            <li>slide 3</li>
            <li>slide 4</li>
            <li>slide 5</li>
            <li>slide 6</li>
            <li>slide 7</li>
        </ul>
        <div class="slide-controller"></div>
        </div>
    </div><!-- /slider -->

CSS

#slide-wrap {
    width:960px;
    height:100%;
    margin: 0 auto;
    position: relative;
}

#slider {
    width:100%;
    height:200px;
    background-color: #000;
    background-image: url('http://nitrous-networks.co.uk/webdev/images/sliderbg.png');
    background-repeat: no-repeat;
    background-position: center -200px;
    -webkit-box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    -moz-box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    position: relative;
}

#slider ul{
    width:960px;
    height:100%;
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}
#slider ul li {
    width:960px;
    height:200px;
}
.slide-controller {
    position: absolute;
    right: 3px;
    top: 50%;
    height: 150px !important;
    width:20px !important;
    margin-top: -75px;
    border-radius: 10px;
    background-color: #000;
    -webkit-box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    -moz-box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
    background: rgb(22,22,22); /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background:...

JavaScript

$(document).ready(function(){

//Setup Variables
var slidecount = 1;
var slidepos = 0;
var pos = ['-1','-1','199','399','599','799','999','1199'];
var slideid = 2;
//var message = 'vars setup';
var Interval;

var slideSpeed = 8000; //Milliseconds 


// Turns Slider List Objects into the Controller blips & Applied Class's
$('#slider li').each(function(){
$('.slide-controller').append('<div data-slide="'+slidecount+'" class="blip inactiveslide"></div>');
$(this).attr('id','slide-'+slidecount);
slidecount++;
$('.blip:first').removeClass('inactiveslide').addClass('currentslide');
//message = 'list setup';
//console.log(message);
});

slidecount = 1;

// Change Slide Function
function ChangeSlide(e) {
    slidepos = pos[e];
    var bgshift = slidepos*-1;
    bgshift = bgshift/2;
    //scrolls to position
    $('#slider ul').animate({scrollTop: slidepos}, 1000);
    $('#slider').animate({'background-position-y': bgshift}, 1500);
    //remove old active button
    $('.currentslide').removeClass('currentslide').addClass('inactiveslide');
    //changes active button
    $('.blip[data-slide='+e+']').removeClass('inactiveslide').addClass('currentslide');
    slidepos++;
    //message = 'changeslide run! vars: slidepos='+slidepos+'';
    var message = 'rotatetimer: '+RotateTimer+' Interval:'+Interval+' speed:'+slideSpeed;
    console.log(message);

}

//Controller Function
$('.blip').live('click', function(){
slideid = $(this).attr('data-slide');
ChangeSlide(slideid);
//message = 'clicked! slideid:'+slideid;
//console.log(message);
clearInterval(Interval);
RotateTimer = setTimeout(GoGo, slideSpeed);
});

// Auto Rotate
function Rotate(){
var currentslide = $('.currentslide').attr('data-slide');
var nextslide = currentslide;
nextslide++;
if (nextslide == "8"){
    nextslide = 1
}
ChangeSlide(nextslide);
//message = 'Rotate Run! vars: currentslide='+currentslide+' nextid='+nextslide;
//console.log(message);
}

//Starts The Auto Rotate and Runs it Every 8 Seconds
function...