Prova questo, ma prima controllalo:
codice:
function opacity(id, opacStart, opacEnd, millisec) {
		//speed for each frame
                var speed = Math.round(millisec / 100);
		var timer = 0;
		var self = this;
		//determine the direction for the blending, if start and end are the same nothing happens
		if(opacStart > opacEnd) {
			for(i = opacStart; i >= opacEnd; i--) {
				setTimeout("changeOpac("+i+",'"+id+"')",(timer * speed));
				timer++;
			}
		} else if(opacStart < opacEnd) {
			document.getElementById(id).style.display='block';
			for(i = opacStart; i <= opacEnd; i++)
				{
			setTimeout("changeOpac("+i+",'"+id+"')",(timer * speed));
		   timer++;
			}
		}
	};
	
	function changeOpac(opacity, id) {
		var object = document.getElementById(id).style; 
		object.opacity = (opacity / 100);
		object.MozOpacity = (opacity / 100);
		object.KhtmlOpacity = (opacity / 100);
		object.filter = "alpha(opacity=" + opacity + ")";
	};