在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