Debería.
Estás leyendo el DOM antes de hacer el cambio?    
Código HTML:
Ver original- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
- <html xmlns="http://www.w3.org/1999/xhtml"> 
- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
-   
- /*<![CDATA[*/ 
-   
- /* estilos */  
- #banner{ 
- background-color: red; 
- height: 400px; 
- width: 400px; 
- opacity: .5; 
- } 
- /*]]>*/ 
- <script type="text/javascript"> 
- //<![CDATA[ 
- function tr(){ 
- var transicion = document.getElementById("banner");   
- transicion.style.opacity="1"; 
- } 
- window.onload = tr; 
- //]]> 
Saludos