在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。然后,您将溢出设置回原来的状态(这一步可能并不是真的需要)并删除高度属性(以防万一)。
你使用任何特定的JavaScript库?动画手动完成很麻烦 – 2008-11-26 17:35:27