Codice PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml"  xmlns:v="urn:schemas-microsoft-com:vml">
  <
head>
    <
title>test</title>
<
style>
#Contenitore{
    
position:relative;
}
#Bottone{
    
background-color:#000099;
    
color:#FFFFFF;
    
font-weight:bold;
    
width:100px;
    
height:30px;
    
text-align:center;
}
#Tendina{
    
background-color:#003300;
    
color:#FFFFFF;
    
font-weight:bold;
    
width:150px;
    
height:200px;
    
position:relative;
    
left:10px;
}
</
style>
    <
script type="text/javascript"
    function 
toggle_visibility(idx){
        var 
oggetto document.getElementById(idx);
        
//alert ('Parto');
        
if(oggetto.style.display == 'none'){
            
oggetto.style.display 'block';
            
alpha 0;
            
quantita 0.05;
            
oggetto.style.opacity alpha;
            
//alert('Non visibile: lo metto visibile con alpha = '+alpha+'('+oggetto.style.opacity+'); Incremento = '+quantita);
            
}
        else{
            
alpha 1;
            
oggetto.style.opacity alpha;
            
quantita = -0.05;
            
//alert('Visibile: lo metto visibile con alpha = '+alpha+'('+oggetto.style.opacity+'); Incremento = '+quantita);
        
}
        
cambia_alpha(alpha,quantita,idx);
    }

    function 
cambia_alpha(alpha,quantita,idx){
        var 
oggetto document.getElementById(idx);

        
alpha+=quantita//Si ferma qui
        
oggetto.style.opacity alpha;

        
alpha=alpha*100;
        
alpha=parseInt(alpha);
        
alpha=alpha/100;
        
        
//alert('Cambio alpha = '+alpha+'('+oggetto.style.opacity+')');
        
        
if(alpha>0&&alpha<1){
            
setTimeout(function(){cambia_alpha(alpha,quantita,idx);},200);
        }else{
            if(
alpha==0)
                
oggetto.style.display 'none';
           
// alert('Basta');
        
}
    }   
    
    
</script>
  </head>

  <body>
<div id="Contenitore">
    <div id="Bottone" onClick="toggle_visibility('Tendina');">Bottone</div>
    <div id="Tendina">Contenuto della tendina</div>
</div>  </body>
</html> 
Tolti tutti gli alert.
Funziona, con Firefox, anche se io metterei un timeout minore per rendere pi&ugrave; 'fluido' l'effetto.
Con timeout a 30 msec e quantita a 0.02 l'effetto non &egrave; affatto male!
Il problema ? Nota la differenza nella setTimeout!

Eh Eh

HTH
Zappa