遅延を持って配列を連続的に反復したいとします。以下の例では、setInterval()を使用しました。それは大丈夫ですが、これを実現するにはより良い方法があるのでしょうか?setInterval()を使用してループを代用する
var message = "Lorem ipsum dolor sit amet";
var print = message.split(" ");
var iterateOverMsg = function(arr) {
$('p').hide().append(arr[0]).fadeIn(3000).fadeOut(2000);
var i = 1;
setInterval(function() {
$('p').hide().text(arr[i]).fadeIn(3000).fadeOut(2000);
i++;
if (i >= arr.length) {
i = 0;
}
}, 5000);
}(print);
https://jsfiddle.net/Tzaru/94oym3yn/
:これを試してみてください。 – Rajesh
'i ++の代わりに; if(i> = arr.length){i = 0'あなたは 'i =(i + 1)%arr.length'を試すことができます。また、この 'fadeIn(3000).fadeOut(2000)'についてはわかりませんが、 'fadeOut'をfadeInのコールバックに入れるべきですか? – Rajesh
これにはHTML5のアニメーションとトランジションイベントを使用できます: 'ontransitionend'と 'onanimationend'を参照してください – Niels