inspired by mbostock's Smooth Scrolling gist