2016-10-03 3 views
0

ユーザーイベントなしでhtmlの連続した時間を変更しようとしています。私はこれを試しました:divのhtmlをユーザーイベントなしで連続して変更する

$('#content').html('<p>Hello</p>').fadeIn(800).delay(1800).fadeOut(800); 
$('#content').delay(3400).html('<p>How are you?</p>').fadeIn(800).delay(1800).fadeOut(800); 
$('#content').delay(6800).html('<p>Great over here</p>').fadeIn(800); 

遅延はエフェクトで機能しますが、表示されるテキストは常に最後のものです。 どうすればいいですか?

+1

使用を使用して '私はそれが最初のコメントによって解決を検討 –

答えて

1

が、それは非常に簡単だsetTimeout()

$('#content').html('<p>Hello</p>'); 
setTimeout(function(){$('#content').html('<p>How are you?</p>');},3400); 
setTimeout(function(){$('#content').html('<p>Great over here</p>')},6800); 
1

あなたはおそらくそのような何かを試すことができます:カーティケヤンスカールによって提案されているよう

function addTimoutElement(htmlContent, delayMs, isFadeout){ 
    setTimeout(function(){ 
     $('#content').html(htmlContent).fadeIn(800); 
     if(isFadeout){ 
      $('#content').delay(1800).fadeOut(800); 
     } 
    }, delayMs); 
}  

$('#content').html('<p>Hello</p>').fadeIn(800).delay(1800).fadeOut(800); 

addTimoutElement('<p>How are you?</p>', 3400, true); 
addTimoutElement('<p>Great over here</p>', 6800, false); 
+0

をSetTimeOut'。関数は既に 'SetTimeOut'として存在します。 それは良い選択ではありませんか? – CarlosAS

+0

私はsetTimeout()を使用していますが、パラメータで新しいテキストを取得する関数を使用しています。私はまた、フェードアウトがあなたがいくつかの要素だけでやっていることに気付くことができます。このすべての点を考慮して、私はカスタム関数の使用がより良い標準であると考えます。 –

関連する問題