Hello, I am experiencing an error with an image blending / rotation script. It happens only in firefox 2 but not in IE 6. You can see a sample of the transition here: http://test.sureloc.ca/template.html The image in the top banner section is supposed to rotate / transition between three different images. In FireFox the first set of rotations goes smoothly as expected, but once it fades from image 1-2, 2-3 and goes back from 3-1 it shows image 1 at full opacity for a split second before the smooth transition begins. This results in a jerky feel to the transition. This does not happen when viewed in internet explorer 6. Any help would be greatly appreciated. Here is the javascript I am using: function opacity(id, opacStart, opacEnd, millisec) { //speed for each frame var speed = Math.round(millisec / 100); var timer = 0; //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) { for(i = opacStart; i <= opacEnd; i++) { setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); timer++; } } } //change the opacity for different browsers 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 + ")"; } function shiftOpacity(id, millisec) { //if an element is invisible, make it visible, else make it ivisible if(document.getElementById(id).style.opacity == 0) { opacity(id, 0, 100, millisec); } else { opacity(id, 100, 0, millisec); } } function blendimage(divid, imageid, imagefile, millisec) { var speed = Math.round(millisec / 100); var timer = 0; //set the current image as background document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")"; //make image transparent changeOpac(0, imageid); //make new image document.getElementById(imageid).src = imagefile; //fade in image for(i = 0; i <= 100; i++) { setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed)); timer++; } } function currentOpac(id, opacEnd, millisec) { //standard opacity is 100 var currentOpac = 100; //if the element has an opacity set, get it if(document.getElementById(id).style.opacity < 100) { currentOpac = document.getElementById(id).style.opacity * 100; } //call for the function that changes the opacity opacity(id, currentOpac, opacEnd, millisec) } var curcanvas="test" var pause=3000 var curimageindex = 0; var fadeimages=new Array() //SET IMAGE PATHS. Extend or contract array as needed fadeimages[0]="images/tp-2-1.jpg" fadeimages[1]="images/tp-2-2.jpg" fadeimages[2]="images/tp-2-3.jpg" function rotateimage(){ blendimage("test", "bigimage", fadeimages[curimageindex], 1100) curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0 } setInterval("rotateimage()",pause) Code (markup):