UPDATE (3/23/18) - since people are still looking at this, I've made an updated fork that uses the Intersection Observer API for better performance (with polyfill). I've also updated it to use JS to load the image off screen, which allows us to wait to start the transition until we know the image is loaded. Yay better perf + animation
LoadingSee the Pen by the_ruther4d (@the_ruther4d) on CodePen.