modified scroll.js to use an animationFrame, much better performance