animation-play-state
Summary
Defines whether an animation is running or paused.
Overview table
- Initial value
running
- Applies to
- All elements, ::before and ::after pseudo-elements.
- Inherited
- No
- Media
- visual
- Computed value
- As specified.
- Animatable
- No
- Percentages
- N/A
Syntax
animation-play-state: paused
animation-play-state: running
Values
- running
- Plays the animation. If restarting a paused animation, the animation resumes from the current (paused) state.
- paused
- Pauses the animation. A paused animation continues to display the current state of the animation.
Examples
The CSS uses the animation property and the @keyframes property as well as the animation-play-state property and more.
The example show how to create a counter like function. By using the “:checked” selector for radio buttons we toggle the animation states for the counter
/* position the handles */ #stopwatch_handles { margin-top: 0px; } /* Style the labels itself, at the bottom we hide the radio buttons itself */ #stopwatch_handles label { cursor: pointer; padding: 5px 5px; font-family: Verdana, sans-serif; font-size: 12px; } input[name="handles"] {display: none;} /*Actual handles this triggers the stopwatch to start and stop based on the state of the radio buttons */ #stopbtn:checked~.stopwatch .numbers { animation-play-state: paused } #startbtn:checked~.stopwatch .numbers { animation-play-state: running } /* we set the animation in 10 steps of 1 second, and set the play state to paused by default */ .moveten { animation: moveten 1s steps(10, end) infinite; animation-play-state: paused; } /* here we do the same except for six */ .movesix { animation: movesix 1s steps(6, end) infinite; animation-play-state: paused; } /* here we actualy set the duration of the seconds so that they sync up when needed */ .second { animation-duration: 10s; } .tensecond { animation-duration: 60s; } /* and here are the keyframes so that the numbers animate vertically The height is 30 and the there are 10 digits so to move up we use -300px (30x10) */ @keyframes moveten { 0% {top: 0;} 100% {top: -300px;} } /* The same goes for this one but instead of ten we have 6 so we get 30x6 = 180px */ @keyframes movesix { 0% {top: 0;} 100% {top: -180px;} }
A mobile-like interface featuring a keyframe-animated pulsing icon. When the application enters an interruption mode, the icon is paused and the page presents another panel to indicate that the animation is inactive.
div.selected { animation: pulse 0.5s infinite alternate running; } body.interrupt div.selected { animation-play-state: paused; } @keyframes pulse { from { transform : scale(1) translateX(0); opacity : 1; } to { transform : scale(0.75) translateX(0); opacity : 0.25; } }
Usage
Can also be a comma-separated list of play states, e.g., running, paused, running, where each play state is applied to the corresponding ordinal position value of the animation-name property.
Related specifications
- CSS Animation
- W3C Working Draft
See also
Other articles
- Making things move with CSS3 animations
- @keyframes
- animation
- animation-delay
- animation-direction
- animation-duration
- animation-fill-mode
- animation-iteration-count
- animation-name
- animation-timing-function
Attributions
Microsoft Developer Network: Windows Internet Explorer API reference Article