If you do not want to use transparent transparency as a backup:
Cross browser support approaches
Javascript polyfill This will be slow and won't let you animate easily. However, this will allow you to create an alternative image for each of your matching images, and then you can fade the opacity or do other CSS transition tricks between them.
http://codepen.io/brav0/pen/bJDxt (not my pen - uses multiply, not soft light)
Server-side processing It would not be my first choice, but if you control the code on the server side, you can prepare alternative images using image libraries on the server side (GD, etc.).
Only enable effect for browser support
CSS hacks for detecting IE
@media screen { @media (min-width: 0px) { div.img::after{ ... } } }
Using javascript
if (window.getComputedStyle(document.body).mixBlendMode !== undefined) $("div.img").addClass("curtain");
... and CSS ...
img.curtain::after { ... }
Richard Peterson
source share