JSFiddle - React, Tailwind, and code Playground
HTML
<div class="projektweb gallery">
<ul class="images-list">
<li class="current"><img src="http://i44.tinypic.com/2dp9b7.gif" alt="" /></li>
<li><img src="http://i43.tinypic.com/2ztacl5.gif" alt="" /></li>
<li><img src="http://i39.tinypic.com/118j9xx.jpg" alt="" /></li>
<li><img src="http://i41.tinypic.com/av09w2.gif" alt="" /></li>
<li><img src="http://i41.tinypic.com/3tphf.gif" alt="" /></li>
</ul>
<div class="clear"></div>
<ul class="button-list">
<li><a class="button prev" href="#">< Prev</a></li>
<li><a class="button next" href="#">Next ></a></li>
</ul>
</div>
CSS
.images-list {
height: 460px;
list-style-type: none;
float: left;
width: 460px;
overflow: hidden;
position: relative;
}
.images-list img {
height: 460px;
width: 460px;
display: block;
}
.images-list li {
display: none;
}
.images-list li.current {
display: block;
}
.clear {
clear: both;
}
.button-list {
list-style-type: none;
width: 460px;
}
.button {
float: left;
padding-left: 10px;
text-align: center;
}
.images-list li.animating {
position: absolute;
top: 0;
left: 0;
display: block;
}
JavaScript
$(document).ready(function() {
// *** Constants ***
var project = $('.projektweb.gallery');
animationTime = 500, // scroll time in milliseconds
animationWidth = 480; // image width = 460 + 20px padding between images
leftPadding = parseInt( project.find('ul').css('padding-left'), 10); // padding due to UL
// *** Next image ***
$('.button-list .next').click(function() {
currentimg = project.find('li.current');
nextimg = (currentimg.next().is('li')) ? currentimg.next() : project.find('.images-list li:first');
currentimg
.removeClass('current')
.addClass('animating')
.css('left', leftPadding)
.animate({
left: '-=' + animationWidth
}, animationTime, function(){
$(this).removeClass('animating');
});
nextimg
.addClass('animating')
.css('left', (animationWidth + leftPadding) + 'px')
.animate({
left: 0 + leftPadding
}, animationTime, function(){
$(this).removeClass('animating').addClass('current');
})
return false;
});
// *** Prev image ***
$('.button-list .prev').click(function() {
currentimg = project.find('.images-list li.current');
previmg = (currentimg.prev().is("li")) ? currentimg.prev() : project.find('.images-list li:last');
currentimg
.addClass('animating')
.css('left', leftPadding)
.removeClass("current")
.animate({
left: '+=' + animationWidth
}, animationTime, function(){
$(this).removeClass('animating');
});
previmg
.addClass('animating')
.css('left', '-' + (animationWidth) + 'px')
.animate({
left: '+=' + (animationWidth + leftPadding)
}, animationTime, function(){
$(this).removeClass('animating').addClass('current');
})
return false;
});
});