reinvent the fartscroll.js

update the logic, and more.