这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
persist()
方法在
Web 动画 API
's
动画
interface explicitly persists an animation, when it would otherwise be removed due to the browser's
自动移除填充动画
behavior.
animation.persist();
None.
None.
In our simple replace indefinite animations demo , you can see the following code:
const divElem = document.querySelector('div');
document.body.addEventListener('mousemove', evt => {
let anim = divElem.animate(
{ transform: `translate(${ evt.clientX}px, ${evt.clientY}px)` },
{ duration: 500, fill: 'forwards' }
);
anim.commitStyles();
//anim.persist()
anim.onremove = function() {
console.log('Animation removed');
}
console.log(anim.replaceState);
});
Here we have a
<div>
element, and an event listener that fires the event handler code whenever the mouse moves. The event handler sets up an animation that animates the <div> element to the position of the mouse pointer. This could result in a huge animations list, which could create a memory leak. For this reason, modern browsers automatically remove overriding forward filling animations.
You can see the
replaceState
of the animation being logged at the end of the handler. This will be
active
for each animation by default, or
persisted
若
persist()
call is uncommented.
| 规范 | 状态 | 注释 |
|---|---|---|
|
Web 动画
The definition of 'persist()' in that specification. |
工作草案 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
persist
|
Chrome
不支持
No
注意事项
|
Edge 不支持 No | Firefox 75 | IE 不支持 No | Opera 不支持 No | Safari 13.1 | WebView Android 不支持 No |
Chrome Android
不支持
No
注意事项
|
Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS 13.4 | Samsung Internet Android 不支持 No |
完整支持
不支持
实验。期望将来行为有所改变。
见实现注意事项。
动画
for other methods and properties you can use to control web page animation.
动画