Transforming elements on scroll in Framer

Where Scroll Animations allowed us to *trigger* an animation that carried itself out with a pre-defined duration — Scroll Transforms let us translate scrolling into smooth, gradual changes to the position, scale, rotation, and opacity of an element.

Where Scroll Animations allowed us to *trigger* an animation that carried itself out with a pre-defined duration — Scroll Transforms let us translate scrolling into smooth, gradual changes to the position, scale, rotation, and opacity of an element.

In this Framer tutorial, you will learn Transforming elements on scroll in Framer. We explain a practical workflow, highlight the key settings that affect the result, and show how to apply the technique on real pages for cleaner UX and better site performance.

Transforming elements on scroll in Framer FAQ

Transforming elements on scroll in Framer FAQ

  • How do I use scroll transforms in Framer to animate elements as I scroll?

    To animate an element as the user scrolls in Framer, select the element and go to the Effects panel to add a Scroll Transform effect. Then define your “From” and “To” states, for example, the element might start at 70% scale and 0% opacity, and end at full size and fully opaque. Choose a trigger (like when the section comes into view) and adjust the scroll-range and easing curve. As the user scrolls, the element will smoothly transition from the “From” state to the “To” state.

  • What is the difference between the ’on scroll’, ’layer in view’, and ’section in view’ triggers for scroll transforms?

    ’On scroll’ triggers the transform from the very top to the very bottom of the page, making the animation happen very slowly and gradually. ’Layer in view’ triggers the transform as the layer enters and exits the viewport, with the animation taking place over the height of the layer as it crosses the viewport. ’Section in view’ allows you to tie the animation to a scroll section, and you can choose whether the animation starts as the section crosses the top, center, or bottom of the viewport, giving you more control over when and how the animation plays.

  • How can I synchronize scroll transforms for multiple elements so their animations start and end together?

    To synchronize scroll transforms for multiple elements, use the ’section in view’ trigger and assign the same scroll section to each element. You can set the trigger to start at the top, center, or bottom of the viewport. This ensures that all elements driven by the same section will animate together as the section crosses the specified point in the viewport, allowing for coordinated animations.

Related videos