Why not just use a div with overflow: scroll and -webkit-overflow-scrolling: touch?
-
Because those rules are not supported well, and still buggy even on the latest iPhones. For example if you keep scrolling up/down quickly in a div, acceleration would randomly stop working.
-
If you want to simulate iPhone behavior on desktop browsers.
-
If you want to alter this to create custom scroll behavior that's the same on all devices.
-
If you don't want to use DOM at all for display, you'd need to have custom code similar to this in your canvas app.