Image flickers/flashes when image.src
gets updated in Firefox >= 8.0. There has already been a bug filed against it and I have encountered this issue in my own project as well.
Assuming we have a tartget image
element and a new image source
we want to update to, the fix, or more precisely workaround, is to force compute a hidden image with new source in DOM before we update the actual image src:
const parentNode = image.parentNode // Create a hidden image clone const temp = image.cloneNode(false) temp.setAttribute('src', source) temp.style.position = 'fixed' temp.style.visibility = 'hidden' parentNode.appendChild(temp) // Delay is necessary to prevent image from flickering setTimeout(() => { // Update actual image src image.setAttribute('src', source) // Remove clone afterwards parentNode.removeChild(temp) }, 50)