JavaScript を次のように変更してください。
更新:スライダーがスライドに到達したら、スライダーを元の位置にスライドさせて戻す必要があります。これは、関数slideLeft
が最後のスライドに到達すると実現されます。
$(document).ready(function() {
var currentPosition = 0;
var slideWidth = 500;
var slides = $('.slide');
var numberOfSlides = slides.length;
var slideShowInterval;
var speed = 3000;
var lastSlideReached = false;
slides.wrapAll('<div id="slidesHolder"></div>');
slides.css({ 'float' : 'left' });
$('#slidesHolder').css('width', slideWidth * numberOfSlides);
slideShowInterval = setInterval(changePosition, speed);
function changePosition() {
if( ! lastSlideReached ) {
if(currentPosition == (numberOfSlides-1)) {
lastSlideReached = true;
clearInterval( slideShowInterval );
slideLeft();
slideShowInterval = setInterval(changePosition, speed);
} else {
currentPosition++;
}
} else {
if( currentPosition == 0 ) {
lastSlideReached = false;
} else {
currentPosition--;
}
}
moveSlide();
}
function moveSlide() {
$('#slidesHolder').animate(
{'marginLeft' : slideWidth*(-currentPosition)}
);
}
function slideLeft() {
$('#slidesHolder').animate({'marginLeft' : 0});
currentPosition = 0;
lastSlideReached = false;
}
});
変数を追加var lastSlideReached = false;
し、関数にいくつかの変更を加えましたchangePosition
。
それが役に立てば幸い。