私はスライドショーを円形にしましたが、好きなときは最後に止めることができます。基本的なロジックは、スライドをクリックすると、自動再生をキャンセルします。
<div class="slides">
<div class="slide">[ content ]</div>
<div class="slide">[ content ]</div>
<div class="slide">[ content ]</div>
</div>
<script>
var stopSlideshow = false,
slideTimeout = null,
slideTime = 5000, // 5 seconds
doSlide = function($slide) {
$('.slide').not($slide).hide(); // hide all but current slide
$slide.show(); // show current slide
$slide = ($slide.next().length) ? $slide.next() : $('.slide:first');
if (!stopSlideshow) { // automatically keeps going if slide show not stopped
slideTimeout = window.setTimeout(function(){doSlide($slide);}, slideTime);
}
};
$('.slide').bind('click',function(ev){
stopSlideshow = true; // set flag
window.clearTimeout(slideTimeout); // stop timeout
$('.slide').unbind(); // cancel slide click
});
doSlide($('.slide:first')); // start wizard
</script>
は、 'clearTimeout' /' clearInterval'を使用します。 –
私はsetTimeout/clearTimeoutを優先します。タイムアウトは、別のタイムアウトのコンテキストを渡すことができるので、非常に簡単に別のタイムアウトを生成します。 –
私は新しいsetTimeoutsを生成しているので、「停止」をクリックしたときにどのセットをクリアするかをどのように設定することができますか? – stewart715