Basic jQuery Horizontal Slider 2
HTML/CSS/jQuery setup for bare-bones horizontal slider, with graphic current-slide indicator.
by the_voder
HTML
<a href="" id="prevbutton" class="navbutton">Previous</a>
<div id="slidemask">
<div id="slidecontainer">
<div id="slide1" class="slides">Slide 1</div>
<div id="slide2" class="slides">Slide 2</div>
<div id="slide3" class="slides">Slide 3</div>
<div id="slide4" class="slides">Slide 4</div>
</div>
</div>
<a href="" id="nextbutton" class="navbutton">Next</a>
<br class="clearfloat" />
<div id="slideno">
<div class="slideindicator"></div>
<div class="slideindicator"></div>
<div class="slideindicator"></div>
<div class="slideindicator"></div>
</div>
CSS
.navbutton {
display: block;
padding: 8px;
margin-top: 20px;
float: left;
}
#slidemask {
width: 200px;
padding: 0;
float: left;
overflow: hidden;
margin-top: 10px;
border: 1px dashed #666;
}
#slidecontainer {
position: relative;
left: 0;
margin: 0;
padding 0;
width: 800px;
}
.slides {
width: 190px;
height: 90px;
margin: 0;
padding: 5px;
float: left;
}
.slides#slide1 {
background-color: red;
}
.slides#slide2 {
background-color: green;
}
.slides#slide3 {
background-color: blue;
}
.slides#slide4 {
background-color: yellow;
}
.clearfloat {
clear: both;
}
#slideno {
margin-left: 72px;
margin-top: 5px;
}
.slideindicator {
width: 10px;
height: 10px;
float: left;
margin-right: 5px;
border: 1px solid #666;
}
.slideindicatorcurrent {
background-color: #ddd;
}
JavaScript
var slidewidth = 200;
var noslides = 4;
var currentslide = 0;
$(".slideindicator:first").addClass('slideindicatorcurrent');
var indicators = $('.slideindicator').toArray();
$('a#nextbutton').click(function () {
if (currentslide < (noslides - 1)) {
currentslide++;
$(".slideindicator:eq("+currentslide+")").toggleClass('slideindicatorcurrent')
$('#slidecontainer').animate({
left: -currentslide * slidewidth
}, 500);
}
return false;
});
$('a#prevbutton').click(function () {
if (currentslide > 0) {
$(".slideindicator:eq("+currentslide+")").toggleClass('slideindicatorcurrent')
currentslide--;
$('#slidecontainer').animate({
left: -currentslide * slidewidth
}, 500);
}
return false;
});