.append()
のような効果でshow('slow')
を使用するにはどうすればよいですか
append
に影響を与えてもまったく機能しないようで、通常のshow()
と同じ結果になります。トランジションもアニメーションもありません。
あるdivを別のdivに追加して、それにslideDown
またはshow('slow')
効果を持たせるにはどうすればよいですか?
Divが追加されるとすぐにブラウザーに表示されるコンテンツが更新されるため、追加に影響はありません。したがって、マークBとステアパイクの答えを組み合わせるには:
実際に追加する前に、追加するdivを非表示としてスタイルします。インラインまたは外部のCSSスクリプトでそれを行うか、単にdivを次のように作成します
<div id="new_div" style="display: none;"> ... </div>
次に、エフェクトをチェーンに追加できます(- デモ ):
$('#new_div').appendTo('#original_div').show('slow');
または( デモ ):
var $new = $('#new_div');
$('#original_div').append($new);
$new.show('slow');
本質はこれです:
これは私のために働く:
var new_item = $('<p>hello</p>').hide();
parent.append(new_item);
new_item.show('normal');
または:
$('<p>hello</p>').hide().appendTo(parent).show('normal');
着信データを操作するときの別の方法(ajax呼び出しなど):
var new_div = $(data).hide();
$('#old_div').append(new_div);
new_div.slideDown();
何かのようなもの:
$('#test').append('<div id="newdiv">Hello</div>').hide().show('slow');
それをすべきですか?
編集:申し訳ありませんが、コードの間違いと、Mattの提案も機内に持ち込みました。
Divに追加する場合、非表示および表示引数"slow"
を使用します。
$("#img_container").append(first_div).hide().show('slow');
最初にcss visibility:hidden
で追加されたdivを非表示に設定します。
私は同様の種類のソリューションを必要としていました。facebookのような壁にデータを追加したかったので、投稿時にprepend()
を使用して最新の投稿を追加します。
$("#statusupdate").submit( function () {
$.post(
'ajax.php',
$(this).serialize(),
function(data){
$("#box").prepend($(data).fadeIn('slow'));
$("#status").val('');
}
);
event.preventDefault();
});
ajax.phpのコードは
if (isset($_POST))
{
$feed = $_POST['feed'];
echo "<p id=\"result\" style=\"width:200px;height:50px;background-color:lightgray;display:none;\">$feed</p>";
}
次のように、単に非表示にして追加してから表示してみませんか?
<div id="parent1" style=" width: 300px; height: 300px; background-color: yellow;">
<div id="child" style=" width: 100px; height: 100px; background-color: red;"></div>
</div>
<div id="parent2" style=" width: 300px; height: 300px; background-color: green;">
</div>
<input id="mybutton" type="button" value="move">
<script>
$("#mybutton").click(function(){
$('#child').hide(1000, function(){
$('#parent2').append($('#child'));
$('#child').show(1000);
});
});
</script>
私の場合:
$("div.which-stores-content").append("<div class="content">Content</div>);
$("div.content").hide().show("fast");
visibility:hidden-> visibility:visibleでcssを調整し、トランジションなどを調整できます。transition:visibility 1.0s;
アニメーションを使用すると、スムーズに表示することができます。スタイルに「animation:show 1s」を追加するだけで、外観全体がキーフレームで記述されます。