私はhttp://kaidez.com/javascript-for-loop-creates-jquery-fade/でチュートリアルをフォローしていて、別のユーザーがループを連続させることについて投稿したことを調べていました。
シーケンスを継続的にループさせようとしましたが、何らかの理由で 1.5 ループで機能し、アイテムが誤ったシーケンスでフェードインおよびフェードアウトし始める理由がわかりません。最初のループで正しくフェードし、2 番目のループの 4 番目のアイテムが遅れてフェードインし、その後はすべてがオフになります。
JQuery
(function($){
var yourFade = 1, // the amount of time in seconds that the elements will fade in AND fade out
yourDelay = 2, // the amount of time in seconds that there will be a delay between the fade ins and fade outs
fadeTime = yourFade * 1000, //convert fade seconds to milliseconds (1000)
delayTime = yourDelay * 1000, // convert delay seconds to milliseconds (2000)
totalTime = fadeTime + delayTime, //3000 milliseconds...needed for all those delays we talked about
allElems, // find out exactly how many page elements have the 'toBeFaded' class (4)
elemNoFade, // Will help us find the last element represent the last element (3)
i,
fadingElem;
allElems = $('.toBeFaded').length
function fadeit(){
for (i = 0, allElems = $('.toBeFaded').length, elemNoFade = allElems - 1; i < allElems; i+=1) {
fadingElem = "#elem" + i;
$(fadingElem).delay(totalTime * i).fadeIn(fadeTime).delay(delayTime).fadeOut(fadeTime);
}
}
fadeit();
setInterval(fadeit,totalTime*allElems);
})(jQuery);
CSS
.toBeFaded {
display: none;
position:absolute;
font-size:70px;
color:white;
}
HTML
<div id="elem0" class="toBeFaded">Message 1</div>
<div id="elem1" class="toBeFaded">Message 2</div>
<div id="elem2" class="toBeFaded">Message 3</div>
<div id="elem3" class="toBeFaded">Message 4</div>
助けてくれてありがとう!私は運が悪いので、何時間もこれを理解しようとしています。