マウスが戻る矢印または次の矢印の上にある間、スライドショーを継続的にアニメーション化するように変更しようとしています。マウスが離れたら、アニメーションをその場で止めてほしいです。
この投稿とこの投稿は、setInterval を使用する必要があることを伝えるのに役立ちますが、初心者なので、自分のコードで実装する方法がわかりません。カウンター変数に設定されたミリ秒を更新しようとしましたが、何も変わりませんでした。
これまでのホバーコードは次のとおりです。ホバー時に画像を進めますが、継続的ではありません。
$(document).ready(function(){
var thumbs = $('ul.thumbHolder li');
var bigImgs = $('ul.imgHolder li');
var mask = $('.imgHolder');
var imgW = $('ul.imgHolder li').width();
var speed = 800;
thumbs.removeClass('selected').first().addClass('selected');
thumbs.click(function () {
var target = $(this).index();
mask.animate({
'left': '-' + imgW * target + 'px'
}, speed);
thumbs.removeClass('selected');
$(this).addClass('selected');
});
$('.Bleft').on('mouseover', function () {
var i = $('ul.thumbHolder li.selected').index();
i--;
$('ul.thumbHolder li.selected').removeClass('selected');
thumbs.eq(i).addClass('selected');
if (i === -1) {
mask.animate({
'left': '-' + imgW * $('ul.thumbHolder li').index() + 'px'
}, speed);
} else {
mask.animate({
'left': '-' + imgW * i + 'px'
}, speed);
}
clearInterval(counter);
});
$('.Bright').on('mouseover', function () {
var i = $('ul.thumbHolder li.selected').index();
i = i >= thumbs.length - 1 ? 0 : i + 1;
$('ul.thumbHolder li.selected').removeClass('selected');
thumbs.eq(i).addClass('selected');
mask.animate({
'left': '-' + imgW * i + 'px'
}, speed);
clearInterval(counter);
});
var count = 0;
var counter = window.setInterval(timer, 5000);
function timer() {
count = count + 0;
if (count >= 0) {
count = 0;
return;
}
mask.animate({
'left': '-' + imgW * count + 'px'
}, speed);
thumbs.removeClass('selected');
thumbs.eq(count).addClass('selected');
}
});
これは私が達成しようとしていることの例です(フラッシュであることは知っていますが、jQuery でも実行できると思います)。
これは、これまでのすべての作業を含むフィドルです。
助けてくれてありがとう。