Animation - Web APIs 编辑
The Animation
interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source.
Constructor
Animation()
- Creates a new
Animation
object instance.
Properties
Animation.currentTime
- The current time value of the animation in milliseconds, whether running or paused. If the animation lacks a
timeline
, is inactive or hasn't been played yet, its value isnull
.
Animation.effect
- Gets and sets the
AnimationEffectReadOnly
associated with this animation. This will usually be aKeyframeEffect
object. Animation.finished
Read only- Returns the current finished Promise for this animation.
Animation.id
- Gets and sets the
String
used to identify the animation. Animation.pending
Read only- Indicates whether the animation is currently waiting for an asynchronous operation such as initiating playback or pausing a running animation.
Animation.playState
Read only- Returns an enumerated value describing the playback state of an animation.
Animation.playbackRate
- Gets or sets the playback rate of the animation.
Animation.ready
Read only- Returns the current ready Promise for this animation.
animation.replaceState
- Returns the replace state of the animation. This will be
active
if the animation has been replaced, orpersisted
ifAnimation.persist()
has been invoked on it.
Animation.startTime
- Gets or sets the scheduled time when an animation's playback should begin.
Animation.timeline
- Gets or sets the
timeline
associated with this animation.
Event handlers
Animation.oncancel
- Gets and sets the event handler for the
cancel
event. Animation.onfinish
- Gets and sets the event handler for the
finish
event. animation.onremove
- Allows you to set and run an event handler that fires when the animation is removed (i.e., put into an
active
replace state).
Methods
Animation.cancel()
- Clears all
keyframeEffects
caused by this animation and aborts its playback. animation.commitStyles()
- Commits the end styling state of an animation to the element being animated, even after that animation has been removed. It will cause the end styling state to be written to the element being animated, in the form of properties inside a
style
attribute.
Animation.finish()
- Seeks either end of an animation, depending on whether the animation is playing or reversing.
Animation.pause()
- Suspends playing of an animation.
animation.persist()
- Explicitly persists an animation, when it would otherwise be removed due to the browser's Automatically removing filling animations behavior.
Animation.play()
- Starts or resumes playing of an animation, or begins the animation again if it previously finished.
Animation.reverse()
- Reverses playback direction, stopping at the start of the animation. If the animation is finished or unplayed, it will play from end to beginning.
Animation.updatePlaybackRate()
- Sets the speed of an animation after first synchronizing its playback position.
Automatically removing filling animations
It is possible to trigger a large number of animations on the same element. If they are indefinite (i.e., forwards-filling), this can result in a huge animations list, which could create a memory leak. For this reason, modern browsers have implemented the part of the Web Animations spec that automatically removes overriding forward filling animations, unless the developer explicitly specifies to keep them.
You can see this in action in our simple replace indefinite animations demo. The related JavaScript features are:
animation.commitStyles()
for commiting the end styling state of an animation to the element being animated, even after that animation has been removed.animation.onremove
for setting and running an event handler that fires when the animation is removed (i.e., put into anactive
replace state).animation.persist()
for when you explicitly want an animations to be retained.animation.replaceState
to return the replace state of the animation. This will beactive
if the animation has been removed, orpersisted
ifpersist()
has been invoked.
Accessibility concerns
Blinking and flashing animation can be problematic for people with cognitive concerns such as Attention Deficit Hyperactivity Disorder (ADHD). Additionally, certain kinds of motion can be a trigger for Vestibular disorders, epilepsy, and migraine, and Scotopic sensitivity.
Consider providing a mechanism for pausing or disabling animation, as well as using the Reduced Motion Media Query to create a complimentary experience for users who have expressed a preference for no animated experiences.
- Designing Safer Web Animation For Motion Sensitivity · An A List Apart Article
- An Introduction to the Reduced Motion Media Query | CSS-Tricks
- Responsive Design for Motion | WebKit
- MDN Understanding WCAG, Guideline 2.2 explanations
- Understanding Success Criterion 2.2.2 | W3C Understanding WCAG 2.0
Specifications
Specification | Status | Comment |
---|---|---|
Web Animations The definition of 'Animation' in that specification. | Working Draft | Initial definition |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论