スライドインし、その下のコンテンツを「エレガントに」スライドさせながらスライドさせる単純なメッセージを作成しようとしています。私が抱えている問題は、メッセージの下のコンテンツがエレガントにスライドせず、「ジャンプ」していることです。アニメーションが始まる前に、メッセージの高さいっぱいまで。メッセージが非表示になった場合も同様です。メッセージは上にスライドしますが、アニメーションが完了してコンテンツが元の位置に戻るまで、高さは同じままです。
超単純化された JSFiddle: http://jsfiddle.net/U94qD/2/
コード (JSFiddle がダウンしている場合):
HTML:
<div class="slide" style="display:none;">Sliding Something into place</div>
<div>This is always shown, but jumps down when the slide animation starts instead of sliding down with the element as it's displayed and it stays in place as the div above hides instead of sliding smoothly with it.</div>
JS:
setTimeout(function() {
show();
}, 500);
function show() {
$(".slide").show('slide', {
direction: 'up'
}, 1000, function() {
hide();
});
}
function hide() {
setTimeout(function() {
$(".slide").hide('slide', {
direction: 'up'
}, 1000);
});
}
注:代わりに「slideDown」および「slideUp」メソッドを使用してみましたが、アニメーションは同じように機能しません。コンテンツを下にスライドさせる代わりに、div の高さを調整してコンテンツを表示します。これは、「スライド」ではなく「ブラインド」アニメーションと呼ばれるものです。