This page is Ready to Use

Notice: The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github.

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

CSS Object Model Property
:

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;
    }
}

View live example

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

Attributions