SOの助けを借りて、いくつかのロゴを循環させてフェードインおよびフェードアウトさせるJavaScript/jqueryが少しあります。横に並んでいる 2 つのロゴを同時にフェードするように変更しようとしています。
ここで私のコードの jsfiddle バージョンを見ることができます: http://jsfiddle.net/BvLb4/3/
ご覧のとおり、左右のロゴに異なるクラスを作成すると、2 つのロゴを並べて配置するのに適していると思いました。したがって、私のhtmlは次のようになります。
<div id="img0" class="logo">
<img src="http://i.imgur.com/JeBWX.jpg"/>
</div>
<div id="img1" class="logo2">
<img src="http://i.imgur.com/DyyY3.jpg"/>
</div>
<div id="img2" class="logo">
<img src="http://i.imgur.com/aVDZ1.jpg"/>
</div>
<div id="img3" class="logo2">
<img src="http://i.imgur.com/JxLQt.jpg"/>
</div>
1 つのロゴを一度に 2 つ操作するために使用した再帰ループを変更するのに問題があります。
$(document).ready(function (){
var fadeDuration = 1000;
var timeBetweenFade = 3000;
var totalLogos = $('.logo').length + $('.logo2').length;
var currentLogo;
var idx = 0;
var loop = function(idx, totalLogos) {
var currentLogo = "#img" + idx;
$(currentLogo)
.delay(100)
.fadeIn(fadeDuration)
.delay(timeBetweenFade)
.fadeOut(fadeDuration, function(){
loop( (idx + 1) % totalLogos, totalLogos);
});
}
loop(0, totalLogos);
});
私の最初の考えは、追加の を作成し、var currentLogo2 = "#img" + (idx+1);
すべて同じメソッドを currentLogo と同様に適用し、idx を 2 増やすことでした。私の頭では理にかなっていますが、これまでのところ、それを実装する試みは成功しておらず、一般的にはそうではありません。コードが少し反復的であるため、とにかくそれが最善のアプローチであるかどうかを確認してください。一度に 2 つ (またはそれ以上) のロゴがフェードインおよびフェードアウトするループを取得するための解決策として何を提案しますか?