- From: Rick Byers <rbyers@chromium.org>
- Date: Wed, 8 Oct 2014 09:56:26 -0400
- To: "www-style@w3.org" <www-style@w3.org>
- Cc: Nathaniel Duca <nduca@chromium.org>, Timothy Dresser <tdresser@chromium.org>
- Message-ID: <CAFUtAY9ooLpX_iEWuKfx1nD0X5rHJQmvGzZXVAG5L1K3Mzbf5A@mail.gmail.com>
Based on feedback to our scroll customization proposal <http://lists.w3.org/Archives/Public/www-style/2014Sep/0297.html> ("beforescroll"), we propose separating out the most essential (and contentious) piece: a way for developers to specify which DOM events scrolling must be synchronized with. Details are in this document <https://docs.google.com/a/chromium.org/document/d/1aOQRw76C0enLBd0mCG_-IM6bso7DxXwvqTiRWgNdTn8/edit#>, but briefly we propose a new CSS property: ‘scroll-delay’ Value: none | inherit | [ start-touch || wheel || scroll-event ] Initial: start-touch wheel Applies to: all elements Inherited: yes By adding 'scroll-event' to the list of things that can "delay" scrolling, an app can build arbitrary "scroll response" effects (eg. parallax, "hidey bars", scroll headers) and we believe basic "scroll customization" effects (eg. snap points, limited scroll-end bounce). Of course this puts a performance optimization burden on the developer to ensure they can still achieve 60fps scrolling, and so is not something the vast majority of websites should opt into. We believe this is essential for sophisticated mobile web applications to provide a native-like user experience with a similar programming model to native mobile platforms. We're working on a prototype implementation in chromium <https://code.google.com/p/chromium/issues/detail?id=347272> and demos of various effects now. This API can also be used to allow websites to improve scroll responsiveness by removing some of the default blocking behavior. For example, browsers that implement touch events and the touch-action CSS property can override the default to remove 'start-touch' from the list so that scrolling can be permitted to start without blocking on any touch events. Rich scroll customization (eg., for pull to refresh) still requires an API for mediating composition between scrollers (such as beforescroll), but we now believe such an API is best built on top of an explicit opt-in mechanism like scroll-delay. Thoughts? Thanks, Rick
Received on Wednesday, 8 October 2014 13:57:14 UTC