Animation 替代web动画api设置的样式
我正在使用web动画api将div设置为特定高度的动画。我正在使用填充模式“向前”来保留高度后动画。但是,稍后我想通过CSS手动将高度设置回“自动”,但通过将填充模式设置为“向前”,似乎可以防止CSS在动画完成后影响高度属性,即使我在元素上设置了它Animation 替代web动画api设置的样式,animation,web-animations,Animation,Web Animations,我正在使用web动画api将div设置为特定高度的动画。我正在使用填充模式“向前”来保留高度后动画。但是,稍后我想通过CSS手动将高度设置回“自动”,但通过将填充模式设置为“向前”,似乎可以防止CSS在动画完成后影响高度属性,即使我在元素上设置了它 我无法在动画播放后立即将高度设置回“自动”,因此我想知道是否有方法覆盖填充“转发”设置的属性?因此我在线阅读了一篇文章,我不记得在哪里找到它。但是它声明CSS不能覆盖填充模式样式 我最终创建了一个函数,该函数仅以0持续时间为属性设置动画 看起来是这样
我无法在动画播放后立即将高度设置回“自动”,因此我想知道是否有方法覆盖填充“转发”设置的属性?因此我在线阅读了一篇文章,我不记得在哪里找到它。但是它声明CSS不能覆盖填充模式样式 我最终创建了一个函数,该函数仅以0持续时间为属性设置动画 看起来是这样的:
setWebAnimationApiStyles(nativeElement, styleTargets) {
return new Promise((res, rej) => {
const animation = nativeElement.animate([styleTargets, styleTargets], { duration: 0, delay: 0, fill: 'forwards' });
animation.onfinish = (evt) => {
res(animation);
};
animation.play();
});
}
style targets对象只是一个对象,其格式与web动画对象的格式相同:
{
height: 'auto'
}
CSS动画和Web动画API设置的样式会影响CSS级联的动画级别。规范的一节对此有描述。因此,如果在样式表或样式属性中设置样式,除非该样式是
!重要信息
,动画样式将覆盖它
在您的情况下,您有两个选择:
cancel()
谢谢,我没有意识到cancel()函数会撤消填充模式设置。我会尝试一下,如果可行,我会接受你的回答是,
cancel()
会完全消除动画对目标元素的影响。