2017-07-31 6 views
2

jQueryを使用してバナーを作成しようとしましたが、display:noneで始まる同じ位置に4つの画像を使用してから、最初の画像をフェードインして消してしまいましたそれらの4人のために。私が構築しているコードだjQuery .fadeIn同時に発生する

$('.aaa').fadeIn(length); 
    $('.aaa').fadeOut(length); 
    $('.aab').fadeIn(length); 
    $('.aab').fadeOut(length); 
    $('.aac').fadeIn(length); 
    $('.aac').fadeOut(length); 
    $('.aad').fadeIn(length); 
    $('.aad').fadeOut(length); 

それはフェードアウトとしていたが、すべての画像は本当に奇妙に見えたと同時に、フェージングたが、誰かがそれらを個別にフェード作る方法を知っているのですか?彼らは

+1

が重複する可能性のコールバック関数を使用することができます(https://stackoverflow.com/questions/8113744/jquery-fade-in-コールバック - 待機していません) – Webinion

+0

あなたの現在のマークアップに従うようなもの(少なくとも私は思う)。しかし、正直言って、このような約束の次に少し汚れているように感じます。 https://jsfiddle.net/ko48e98u/2/ – user3366016

答えて

0

順であるとすることができますクラスを共有している場合、彼らは一般的なクラスや、それらのすべてを取得する他の方法を共有することができない場合は、それを表示する

var imgs = $('.common').toArray(); 

function disp_next() { 
    $(imgs.shift()).fadeIn() 
    .delay(1000) 
    .fadeOut(function(){ 
    if(imgs.length !== 0) { 
     disp_next(); 
    } 
    }) 
} 

disp_next(); 

それをフェードアウト各1をループ1つのjQueryのセレクタは、[コールバックでjqueryのフェード待機していない]のfadeInfadeOut

$('.aaa').fadeIn(function(){ 
    $('.aaa').fadeOut(function(){ 
     $('.aab').fadeIn(function(){ 
      $('.aab').fadeOut(); 
     }) 
    }) 
}) 
+2

*注:fadeIn/fadeOutの最初のパラメータはフェードの持続時間をミリ秒で示す整数でもかまいません。 400msがデフォルトです。フェードが完了するとコールバックが発生します。次は400msのフェードイン、4秒のポーズ、400msのフェードアウトです。 $( '.aaa').fadeIn(400、function(){ setTimeout(function(){ $( '.aaa').fadeOut(); }、4000); }); – JRodd

関連する問題