Infinite looping slider
by Sandra Caroline Hansen
HTML
<div id="container">
<ul id="slider">
<div class="slide">slide 1</div>
<div class="slide">slide 2</div>
<div class="slide">slide 3</div>
<div class="slide">slide 4</div>
<div class="slide">slide 5</div>
<div class="slide">slide 6</div>
</ul>
</div>
CSS
#container {
position: relative;
width: 200px;
height:100px;
background: orange;
}
#slider {
position: absolute;
}
JavaScript
$(function () {
var startTime = +new Date();
$('#container').css('overflow', 'hidden');
var slider = $('#slider'),
items = slider.find('.slide');
var sliderHeight = slider.height(),
itemsNum = items.length,
itemHeight = items.height();
slider.css('top', '-' + (sliderHeight + itemHeight) + 'px');
var startPos = slider.css('top');
items.first().before(items.clone());
items.last().after(items.clone());
scrollItems(slider,sliderHeight,itemHeight,startPos,4);
var endTime = +new Date();
var diff = endTime - startTime;
console.log(diff);
setInterval(function(){
scrollItems(slider,sliderHeight,itemHeight,startPos,4);
}, 4000);
});
function scrollItems(container, targetsHeight, increment, startPos, temps) {
var secs = temps * 1000;
container.animate({
'top': '-' + ((targetsHeight * 2) + increment) + 'px'
}, secs, 'linear', function () {
container.css('top', startPos);
});
}