See demo on Codepen: https://codepen.io/comehope/pen/XYKdwg
Watch interractive video on Scrimba: https://scrimba.com/p/pEgDAM/cM7RLUG
Read annotated source on Segmentfault(zh-cn): https://segmentfault.com/a/1190000015192218
Inspired by: Charlie Marcotte https://codepen.io/FUGU22/pen/YxEojN