Hola,
Prueba con esto:
Código javascript
:
Ver originalfunction toggle(id,time){
var el=document.getElementById(id);
if(el.style.display=='none'){
setHeight(el,getHeight(el,true),true,time);
}else{
setHeight(el,0,true,time);
}
}
function setHeight(elm,fin,efected,time){
if(fin>1){
elm.style.display='block';
}
elm.style.overflow="hidden";
if(efected){
if(elm.interval)clearInterval(elm.interval);
var time=!time?50:(time<2?2:time);
var act=getHeight(elm,false);
var org=act;
elm.interval=setInterval(function(){
if((org<fin?act>=fin:act<=fin)){
if(fin==0){
elm.style.display='none';
}
clearInterval(elm.interval);
}
act=(act>fin?act-Math.ceil((act-fin)/time):act+Math.ceil((fin-act)/time));
elm.style.height=act+'px';
},1);
}else{
if(fin==0){
elm.style.display='none';
}
elm.style.height=fin+'px';
}
}
function getHeight(elm,full){
if(!full){
return elm.clientHeight==0?elm.offsetHeight:elm.clientHeight;
}else{
origdisp=elm.style.display;
origheight=elm.style.height;
origpos=elm.style.position;
origvis=elm.style.visibility;
elm.style.visibility="hidden";
elm.style.height="";
elm.style.display="block";
elm.style.position="absolute";
var total=elm.clientHeight==0?elm.offsetHeight:elm.clientHeight;
elm.style.display=origdisp;
elm.style.height=origheight;
elm.style.position=origpos;
elm.style.visibility=origvis;
elm.style.display="block";
return total;
}
}
Y lo ejecutas haci:
Código javascript
:
Ver originaltoggle('ID DEL ELEMENTO',TIEMPO);
Tambien si nesesitas puedes usar las dos funciones (setHeight,getHeight) mirando como las uso para el efecto.
Suerte
Salu2
PD: Anda en IE 5.5 al 8, Mozilla Firefox, Opera, Google Chorme y Safari (son todos los que conosco
)