Animating in Frames: Repeating Image Transition

Animating in Frames: Repeating Image Transition


In our last Motion Highlights collection, I added a really amazing reel by Joana Correia, a truly skilled motion designer. Her works are so thoughtful and browsing her latest projects I stumbled upon one of her other reels wrapping up her last year. Right at the beginning, there is this:

This small excerpt showcases a really interesting sliced repetition effect, which inspired me to try something new: animating “frames” of the same image along a path. I’m not sure if this is any good, but for some reason, I really like it. It feels like it could fit well within editorial design contexts.

It’s just a proof of concept, but I hope it sparks some new ideas for you too! 🙂

Configuration

There are better ways to do this obviously, but since this is a proof of concept and we want to be able to show various effects in our demo, I decided to do it like this. So here’s how the configuration works.

Each grid item can override the global animation settings by specifying data- attributes directly in the HTML. This allows fine-tuning of transitions on a per-item basis.

You can customize the following options for each .grid__item:

  • clipPathDirectiondata-clip-path-direction: Direction for clip-path animation (top-bottom, bottom-top, left-right, right-left).
  • stepsdata-steps: Number of mover elements created between grid item and panel.
  • stepDurationdata-step-duration: Duration (in seconds) of each mover animation step.
  • stepIntervaldata-step-interval: Delay (in seconds) between each mover’s animation start.
  • rotationRangedata-rotation-range: Maximum random rotation (±value, degrees) applied to movers.
  • wobbleStrengthdata-wobble-strength: Maximum random positional wobble (in pixels) during motion path generation.
  • moverPauseBeforeExitdata-mover-pause-before-exit: Pause duration (in seconds) before movers exit.
  • panelRevealEasedata-panel-reveal-ease: Easing function used when revealing the panel.
  • gridItemEasedata-grid-item-ease: Easing function for animating grid item exits.
  • moverEnterEasedata-mover-enter-ease: Easing function for movers entering.
  • moverExitEasedata-mover-exit-ease: Easing function for movers exiting.
  • panelRevealDurationFactordata-panel-reveal-duration-factor: Multiplier to adjust panel reveal animation timing.
  • clickedItemDurationFactordata-clicked-item-duration-factor: Multiplier to adjust clicked grid item animation timing.
  • gridItemStaggerFactordata-grid-item-stagger-factor: Multiplier for staggered grid item animations (based on distance).
  • moverBlendModedata-mover-blend-mode: CSS mix-blend-mode to apply to movers (normal, screen, etc.).
  • pathMotiondata-path-motion: Path motion type: linear (straight) or sine (curved).
  • sineAmplitudedata-sine-amplitude: Height of sine wave if using sine path motion (in pixels).
  • sineFrequencydata-sine-frequency: Frequency of sine wave motion (higher = more waves).

Example

Aura — K21

Model: Lily Cooper

This item will fly with 8 movers, stronger rotation wobble, a sine wave path, and panel opening from left to right.

Try it out and play with it and I really hope you enjoy it!



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *