poc: generic scroll transform component to support scroll-based animations #1247
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PoC takes the ideas of
scroll-opacityand makes it more generic, allowing scroll position to control all types of styles and transforms. It also allows multiple transforms to be applied to the same container.The syntax looks like this:
The container element is the one where the transforms will be applied. In this example, we apply a "translateX" transform and a scale transform over the same scroll range. Note the scroll ranges can be different. Transforms can also be applied to styles like opacity.
Implementation
ScrollTransformcomponent.ScrollOpacitycomponent.Animated.ViewRN component with the provided style and children. Thetransformelements are used to driveAnimatedvalues that are added as extra styles to the root component.Screenshots
Example of a scroll transform used to fade in/out a title bar, and scale the photo (on negative scroll):
scroll_transform.mp4