在 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。然后,将溢出设置回原来的状态(这一步可能并不是真正需要的)并删除高度属性(以防万一)。