Re: [csswg-drafts] [css-overscroll-scrollend-events] Content has no way of understanding whether it is being overscrolled or whether scroll has ended (#3801)

They do. Generally speaking scrollend is not matched with touchend. It is matched with the end of the scroll. So if there are continuation of the scroll due to fling and whatnot scrollend is delayed accordingly.

> Also, if the user overscrolls while keeping the finger down, and then flings out of the overscroll in the opposite direction, I believe we can get this sequence of events:
> 
> scroll
> scroll
> overscroll (based on actual user movement)
> overscroll (based on computed user deltas due to inertia?)
> scroll
> scroll
> scrollend

Currently, in Chromium implementation when you do overscroll as soon as you change direction you start scrolling (i.e. changing scroll offset). So it is as if overscroll delta goes to 0 directly. With this mode, as soon as you change direction you should be expecting scroll events and not overscroll as the page is scrolling indeed. However, I can imagine we can have another overscroll-behavior css value to indicate the overscroll should ease back instead of immediately starting scroll in the opposite direction for example. In that mode then the series of events should become the same as your first example. This additional control seems to be the perfect fit for additional values in overscroll-behavior.

> Or if the fling travels all the way to the other scroll extent, one could even see:
> 
> scroll
> scroll
> overscroll (based on actual user movement)
> overscroll (based on computed user deltas due to inertia?)
> scroll
> scroll
> overscroll (based on computed user deltas due to inertia?)
> overscroll (based on computed user deltas from tension returning to the normal scroll boundary)
> scrollend

The same goes for the second example. Chromium doesn't do overscroll on fling at this point. So it actually stops scrollings and sends scrollend as soon as it hits the boundary. I can imagine again have an attribute in overscroll-behavior to let the user agent do that behavior. If that was allowed then your second output expectation would also be correct.

-- 
GitHub Notification of comment by NavidZ
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3801#issuecomment-574372517 using your GitHub account

Received on Tuesday, 14 January 2020 21:02:34 UTC