animation-iteration-count
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Theanimation-iteration-countCSS property sets the number of times an animation sequence should be played before stopping.
It is often convenient to use the shorthand propertyanimation to set all animation properties at once.
In this article
Try it
animation-iteration-count: 0;animation-iteration-count: 2;animation-iteration-count: 1.5;<section> <div>Animation <span></span></div> <div>Select a count to start!</div></section>#example-element { align-items: center; background-color: #1766aa; border-radius: 50%; border: 5px solid #333333; color: white; display: flex; flex-direction: column; height: 150px; justify-content: center; margin: auto; margin-left: 0; width: 150px;}#play-status { font-weight: bold;}.animating { animation-name: slide; animation-duration: 3s; animation-timing-function: ease-in;}@keyframes slide { from { background-color: orange; color: black; margin-left: 0; } to { background-color: orange; color: black; margin-left: 80%; }}const el = document.getElementById("example-element");const status = document.getElementById("play-status");function update() { status.textContent = "delaying"; el.className = ""; window.requestAnimationFrame(() => { window.requestAnimationFrame(() => { el.className = "animating"; }); });}el.addEventListener("animationstart", () => { status.textContent = "playing";});el.addEventListener("animationend", () => { status.textContent = "finished";});const observer = new MutationObserver(() => { update();});observer.observe(el, { attributes: true, attributeFilter: ["style"],});update();Syntax
/* Keyword value */animation-iteration-count: infinite;/* <number> values */animation-iteration-count: 3;animation-iteration-count: 2.4;/* Multiple values */animation-iteration-count: 2, 0, infinite;/* Global values */animation-iteration-count: inherit;animation-iteration-count: initial;animation-iteration-count: revert;animation-iteration-count: revert-layer;animation-iteration-count: unset;Theanimation-iteration-count property is specified as one or more comma-separated values.
Values
infiniteThe animation will repeat forever.
<number>The number of times the animation will repeat; this is
1by default. You may specify non-integer values to play part of an animation cycle: for example,0.5will play half of the animation cycle. Negative values are invalid.
Note:When you specify multiple comma-separated values on ananimation-* property, they are applied to the animations in the order in which theanimation-names appear. For situations where the number of animations andanimation-* property values do not match, seeSetting multiple animation property values.
Note:When creatingCSS scroll-driven animations, specifying ananimation-iteration-count causes the animation to repeat that number of times over the course of the timeline's progression. If ananimation-iteration-count is not provided, the animation will only occur once.infinite is a valid value for scroll-driven animations, but it results in an animation that doesn't work.
Formal definition
| Initial value | 1 |
|---|---|
| Applies to | all elements,::before and::afterpseudo-elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | Not animatable |
Formal syntax
animation-iteration-count =
<single-animation-iteration-count>#
<single-animation-iteration-count> =
infinite|
<number [0,∞]>
Examples
>Setting iteration count
This animation will run 10 times.
HTML
<div></div>CSS
.box { background-color: rebeccapurple; border-radius: 10px; width: 100px; height: 100px;}.box:hover { animation-name: rotate; animation-duration: 0.7s; animation-iteration-count: 10;}@keyframes rotate { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); }}Result
Hover over the rectangle to start the animation.
SeeCSS animations for examples.
Specifications
| Specification |
|---|
| CSS Animations Level 1> # animation-iteration-count> |
Browser compatibility
See also
- Using CSS animations
- JavaScript
AnimationEventAPI - Other related animation properties:
animation,animation-composition,animation-delay,animation-direction,animation-duration,animation-fill-mode,animation-name,animation-play-state,animation-timeline,animation-timing-function