画像スライダーのスライドで画像を変更 する必要があります。
各スライドには、3 秒後に変化する2 つの画像が含まれています。
したがって、スライドには最初の画像が表示され、3 秒後に最初の画像が 2 番目の画像に変更され、さらに 3 秒後 (合計 6 秒) に現在のスライドが移動し、次のスライドが表示されます。
私の考えは、setTimeOut
関数を使用し、3 秒ごとに別の画像を呼び出すことです。そのため、3 秒後fadeOut()
に最初の画像とfadeIn()
2 番目の画像が表示されます。
私はcycle2cycle-after
とそのcycle-before
イベントを使ってこれを試しました:
$('.slide .center img:nth-child(2)').hide(); // hide all slides second images
$('#slides').cycle({
fx: 'scrollHorz',
slides: '>.slide',
timeout: 6000,
prev: '#prev',
next: '#next'
});
$('#slides').on('cycle-before', function(event, optionHash){
setTimeout(function(){
$('.slide:eq('+optionHash.currSlide+') > .center > img:first-child').fadeOut(1000);
console.log($('.slide:eq('+(optionHash.currSlide)+')').attr('slideNum'));
},1000)
setTimeout(function(){
$('.slide:eq('+optionHash.currSlide+') > .center > img:nth-child(2)').fadeIn();
console.log($('.slide:eq('+(optionHash.currSlide)+')').attr('slideNum'));
},2000)
});
$('#slides').on('cycle-after', function(event, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) {
$('.center img:first-child',outgoingSlideEl).show();
$('.center img:nth-child(2)',outgoingSlideEl).hide();
});
しかし、これは私が期待したようには機能しません。それは画像を変更せず、壊れてnext
ボタンをprev
押します。コンソールが表示される場合は、current slide
.
どんな助けでも大歓迎です。