JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<div id="slideshow">
<div id="slidesContainer">
<div class="slide a">a</div>
<div class="slide b">b</div>
<div class="slide c">c</div>
<div class="slide d">d</div>
</div>
</div>
CSS
.a {
background-color: red;
}
.b {
background-color: green;
}
.c {
background-color: blue;
}
.d {
background-color: yellow;
}
JavaScript
$(document).ready(function () {
var currentPosition = 0;
var slideWidth = 560;
var slides = $('.slide');
var numberOfSlides = slides.length;
// Remove scrollbar in JS
$('#slidesContainer').css('overflow', 'hidden');
// Wrap all .slides with #slideInner div
slides.wrapAll('<div id="slideInner"></div>')
// Float left to display horizontally, readjust .slides width
.css({
'float': 'left',
'width': slideWidth
});
// Set #slideInner width equal to total width of all slides
$('#slideInner').css('width', slideWidth * numberOfSlides);
// Insert controls in the DOM
$('#slideshow')
.prepend('<span class="control" id="leftControl">Clicking moves left</span>')
.append('<span class="control" id="rightControl">Clicking moves right</span>');
// Hide left arrow control on first load
manageControls(currentPosition);
// Create event listeners for .controls clicks
$('.control').bind('click', function () {
// Determine new position
if ($(this).attr('id') == 'rightControl') {
currentPosition = currentPosition >= slides.length - 1 ? 0 : currentPosition + 1;
}
else {
currentPosition = currentPosition <= 0 ? slides.length - 1 : currentPosition - 1;
}
console.log(currentPosition);
// Hide / show controls
manageControls(currentPosition);
// Move slideInner using margin-left
$('#slideInner').animate({
'marginLeft': slideWidth * (-currentPosition)
});
});
// manageControls: Hides and Shows controls depending on currentPosition
function manageControls(position) {
// Hide left arrow if position is first slide
if (position == 0) {
$('#leftControl').hide()
} else {
$('#leftControl').show()
}
// Hide right arrow if position is last slide
if (position ==...