Exposing inertial snap points
AssigneeMicrosoft Technology Licensing, LLC
InventorRegis L. F. Brid
Life of this patent
Estimating the term…
Abstract
A scroll viewer control that displays associated content having inertial snap points in a scrollable view. The scroll viewer control applies inertial movement to displayed content such that even after a user completes a scroll gesture, the displayed content continues to scroll with reducing velocity until the scroll slows to a stop within the scrollable view. In so doing, the scroll viewer control enforces an inertial snap point by causing the scroll to stop when a boundary of the scrollable view coincides with the inertial snap point. A content control may implements an interface that allows the scroll viewer control to discover the snap point set associated with the content. Furthermore, the content control may notify the scroll viewer control of changes in the snap point set.
Claims20
A computer program product comprising one or more computer-readable hardware storage devices having stored thereon computer-executable instructions that are structured in order to, based on execution by one or more processors of a computing system, cause the computing system to instantiate in memory a scroll viewer control configured, based at least on an association with content, to:
- cause a scrollable view to be displayed on a display of the computing system;
- cause the content to be displayed within the scrollable view;
- cause the displayed content to scroll within the scrollable view based at least on a user interacting with the scrollable view control using a scroll gesture;
- apply inertial movement to displayed content, such that after a user completes the scroll gesture, the displayed content continues to scroll with reducing velocity, passing a boundary of the scrollable view, until the scroll slows to an inertial stop within the scrollable view;
- discover a set of one or more inertial snap points associated with the underlying content, wherein the set of one or more inertial snap points differ according to content;
- distinguish between the set of one or more inertial snap points to identify any mandatory inertial snap points and any optional inertial snap points associated with the content;
- and
- enforce the set of one or more inertial snap points associated with the underlying content by:
- for any mandatory inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll, mandating the scroll to stop when the mandatory inertial snap point coincides with the boundary of the scrollable view;
- ignoring any optional inertial snap point encountered subsequent to the user completing the scroll gesture and during the scroll that does not occur within a predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop;
- and
- for any optional inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll that occurs within the predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop, and that is determined to be a closest inertial snap point to the boundary of the scrollable view when the scroll slows to the inertial stop, causing the boundary of the scrollable view to coincide with said closest inertial snap point.
A computer system comprising:
- one or more processors;
- a display;
- and
- one or more storage devices having thereon computer-executable instructions that are structured in order to, based on execution by the one or more processors, cause the computer system to instantiate the following:
- a scroll viewer control configured to perform the following when associated with content:
- cause a scrollable view to be displayed on a display of the computer system;
- cause the content do be displayed within the scrollable view;
- cause the displayed content to scroll within the scrollable view based at least on a user interacting with the scrollable view control using a scroll gesture;
- apply inertial movement to displayed content such that after a user completes the scroll gesture, the displayed content continues to scroll with reducing velocity, passing a boundary of the scrollable view, until the scroll slows to an inertial stop within the scrollable view;
- discover a plurality inertial snap points associated with the underlying content, wherein the plurality inertial snap points differ according to content;
- distinguish between mandatory inertial snap points and optional inertial snap points associated with the content;
- enforce the set of one or more inertial snap points associated with the underlying content by:
- for any mandatory inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll, mandating the scroll to stop when the mandatory inertial snap point coincides with the boundary of the scrollable view;
- ignoring any optional inertial snap point encountered subsequent to the user completing the scroll gesture and during the scroll that does not occur within a predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop;
- and
- for any optional inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll that occurs within the predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop, and that is determined to be a closest inertial snap point to the boundary of the scrollable view when the scroll slows to the inertial stop, causing the boundary of the scrollable view to coincide with said closest inertial snap point.
A computer-implemented method for allowing a user to scroll through content displayed in a scrollable view on a display, the method comprising:
- an act of causing a scrollable view to be displayed on a display of the computing system;
- an act of causing the content to be displayed within the scrollable view;
- an act causing the displayed content to scroll within the scrollable view based at least on a user interacting with the scrollable view control using a scroll gesture;
- an act of applying inertial movement to displayed content such that after a user completes the scroll gesture, the displayed content continues to scroll with reducing velocity, passing a boundary of the scrollable view, until the scroll slows to an inertial stop within the scrollable view;
- an act of discovering a set of one or more inertial snap points associated with the underlying content, wherein the set of one or more inertial snap points differ according to content;
- an act of distinguishing between the set of one or more inertial snap points to identify any mandatory inertial snap points and any optional inertial snap points associated with the content;
- and
- an act of enforcing the set of one or more inertial snap points associated with the underlying content by:
- for any mandatory inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll, mandating the scroll to stop when the mandatory inertial snap point coincides with the boundary of the scrollable view;
- ignoring any optional inertial snap point encountered subsequent to the user completing the scroll gesture and during the scroll that does not occur within a predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop;
- and
- for any optional inertial snap point that is encountered subsequent to the user completing the scroll gesture and during the scroll that occurs within the predetermined distance from the boundary of the scrollable view when the scroll slows to the inertial stop, and that is determined to be a closest inertial snap point to the boundary of the scrollable view when the scroll slows to the inertial stop, causing the boundary of the scrollable view to coincide with said closest inertial snap point.
Dependencies are inferred from the claim text.