Creating pauses between iterations in CSS @keyframes
animations isn't directly supported. While animation-delay
postpones the animation's start, inserting delays between iterations requires workarounds. This article explores effective techniques, addressing limitations of prior methods.
The need arose while adapting a shooting stars animation for a space-themed employee portal. Fewer stars were needed to minimize distraction and CPU load, while maintaining a sense of randomness.
Limitations of Existing Methods
Traditional methods involve adjusting keyframes to a fraction of 100%, maintaining the final state until 100% to simulate a pause. This is cumbersome, error-prone, and makes understanding the animation's logic difficult.
@keyframes my-animation { /* Animation (0% to 50%) */ 0% { width: 0; } 15% { width: 100px; } /* Pause (50% to 100%) */ 50%, 100% { width: 0; } }
A New Approach: Conditional Hiding
A superior method uses a second @keyframes
set to control visibility during the pause. This separates animation logic from pausing.
.target-of-animation { animation: my-awesome-beboop 1s, pause-between-iterations 4s; } @keyframes my-awesome-beboop { /* Your main animation here */ } @keyframes pause-between-iterations { /* Visible (25%) */ 0%, 25% { opacity: 1; } /* Hidden (75%) */ 25.1%, 100% { opacity: 0; } }
The pause duration must be a multiple of the animation's duration. Infinitely repeating keyframes will restart immediately, overriding longer animations.
Key Insight: Easing functions apply between defined keyframes, not from 0% to 100%. This means the easing curve is applied individually to each property between consecutive keyframes.
In the example above, my-awesome-beboop
runs multiple times unseen during the pause before visually resuming.
Here's how this applies to the shooting stars animation:
Maintaining Visibility During Pauses
If the animation must remain visible during pauses, a second @keyframes
set can counteract the primary animation's motion. For example, if translateX
is used, animate left
or margin-left
to neutralize the movement.
Examples include pausing using transform-origin
or counteracting translateX
with left
animation. Pausing translateX
for multiple iterations requires more complex keyframes:
/* Pausing for three iterations */ @keyframes slide-left-pause { 25%, 50%, 75% { left: 0; } 37.5%, 62.5%, 87.5% { left: -100px; } 100% { left: 0; } }
Minor jitter might occur due to conflicting animations.
Conclusion
Hiding the element during pauses or counteracting transform
animations offers the best performance. Manipulating properties like left
, margin
, or width
is more computationally intensive than adjusting opacity
.
Credit to Yusuke Nakaya for the original shooting stars animation.
The above is the detailed content of A New Way to Delay Keyframes Animations. For more information, please follow other related articles on the PHP Chinese website!

Article discusses CSS margin property, specifically "margin: 40px 100px 120px 80px", its application, and effects on webpage layout.

The article discusses CSS border properties, focusing on customization, best practices, and responsiveness. Main argument: border-radius is most effective for responsive designs.

The article discusses CSS background properties, their uses in enhancing website design, and common mistakes to avoid. Key focus is on responsive design using background-size.

Article discusses CSS HSL colors, their use in web design, and advantages over RGB. Main focus is on enhancing design and accessibility through intuitive color manipulation.

The article discusses the use of comments in CSS, detailing single-line and multi-line comment syntaxes. It argues that comments enhance code readability, maintainability, and collaboration, but may impact website performance if not managed properly.

The article discusses CSS Selectors, their types, and usage for styling HTML elements. It compares ID and class selectors and addresses performance issues with complex selectors.

The article discusses CSS priority, focusing on inline styles having the highest specificity. It explains specificity levels, overriding methods, and debugging tools for managing CSS conflicts.

Article discusses CSS syntax, learning strategies, common mistakes, and validation tools. Main focus is on mastering CSS through practice and understanding.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Notepad++7.3.1
Easy-to-use and free code editor

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Atom editor mac version download
The most popular open source editor
