div
を持っています。フェードアウトし、コンテンツを更新してから、フェードインします。これまでのところ、次のことを試しました。
_$('#myDivID').fadeOut('slow', function() {
$('#myDivID').replaceWith("<div id='myDivID'>" + content + "</div>");
$('#myDivID').fadeIn('slow');
});
_
フェードアウトが完了し、匿名のコールバックが呼び出されます。ここまでは順調ですね。
div
のコンテンツは正しく置き換えられますが、fadeIn()
の効果は即座に発生します。スムーズな移行はなく、更新されたdiv
にすばやくすばやくジャンプします。
これを達成するためのより良い方法はありますか?アドバイスありがとうございます。
あなたはそれをこのようにすべきです(これは動作し、テストされたコード):
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').html(content);
$('#myDivID').fadeIn('slow');
});
新しく作成されたdivがすぐに表示されるため、コードが機能していませんでした。別の解決策は、次のようなdisplay:none
を追加することです。
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').replaceWith("<div id='myDivID' style='display:none'>" + content + "</div>");
$('#myDivID').fadeIn('slow');
});
これが乾杯に役立つことを願っています
setTimeOutを使用する
setTimeout(function() { $('#myDivID').fadeIn('slow'); }, 5000);
これは動作します
jsFiddle http://jsfiddle.net/3XYE6/1/
$('#doit').click(function(){
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').html('New content in MyDiv ('+Math.random()+')')
setTimeout(function() { $('#myDivID').fadeIn('slow'); }, 5000);
});
})
これでうまくいくはずです!
このようなものが機能します:
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').replaceWith("<div id='myDivID'>" + content + "</div>")
$('#myDivID').hide().delay(2000).fadeIn('slow');
});
ここでテスト: http://jsfiddle.net/tomgrohl/PgcTZ/
アニメーションを機能させるために、遅延の前に非表示を配置しました。
ReplaceWithを使用すると、コンテンツが表示されるため、スムーズな移行ができません。
最初にdivを非表示にしてから、fadeInを呼び出すと、スムーズに移行できます。
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').replaceWith("<div id='myDivID' style='display:none'>" + content + "</div>");
$('#myDivID').fadeIn('slow');
});
これを試して。
$('#myDivID').fadeOut('slow', function() {
$('#myDivID').html("all this text");
$('#myDivID').fadeIn('slow');
});