jQuery では、次のことができます。
$(myListItem).hide().slideDown(2000);
それ以外の場合は、setTimeout といくつかの CSS の変更を使用して、カスタム アニメーションをロールアウトします。これは、私が数分で作り上げた厄介なものです。
function anim8Step(height)
{
var item = document.getElementById('anim8');
item.style.height = height + 'px';
}
function anim8()
{
var item = document.getElementById('anim8');
var steps = 20;
var duration = 2000;
var targetHeight = item.clientHeight;
var origOverflow = item.style.overflow;
item.style.overflow = 'hidden';
anim8Step(0);
for(var i = 1; i < steps; ++i)
setTimeout('anim8Step(' + (targetHeight * i / steps) + ');', i / steps * duration);
setTimeout('var item = document.getElementById(\'anim8\'); item.style.height = \'auto\'; item.style.overflow = \'' + origOverflow + '\';', duration);
}
(Javascriptが苦手なので、めちゃくちゃですみません。)
基本的に、li (#anim8) のオーバーフローを非表示に設定して、コンテンツが他の要素のコンテンツと重複しないようにします。次に、高さを 0 に設定し、時間をかけて clientHeight まで増やします。次に、オーバーフローを元の状態に戻し (この手順はおそらく実際には必要ありません)、高さ属性を削除します (念のため)。