angular - 如何通过 AnimationPlayer 或 AnimationReferenceMetadata 提供无限动画(需要替代方案)
问题描述
我有一个AnimationPlayer
根据指定AnimationReferenceMetadata
定义定义的动画。
像这样的东西:
const base: AnimationMetadata[] = [
style({
opacity: `{{startOpacity}}`
}),
animate(
`{{duration}} {{delay}} {{easing}}`,
style({
opacity: `{{endOpacity}}`
})
)
];
const fadeIn: AnimationReferenceMetadata = animation(base, {
params: {
delay: "0s",
duration: "350ms",
easing: EaseOut.sine,
endOpacity: 1,
startOpacity: 0
}
});
我必须directive
在交互时播放动画。这directive
是使用一个Animation
类来根据指定的构建和播放动画AnimationReferenceMetadata
。
export class Animation extends BehaviorManager {
private _player: AnimationPlayer;
private _isInfinite: boolean = false;
constructor(meta: AnimationReferenceMetadata, infinte:boolean = false, public _el: ElementRef,private _builder: AnimationBuilder) {
super();
const animation: AnimationFactory = this._builder.build(meta);
this._isInfinite = infinte;
this._player = animation.create(this._el.nativeElement);
}
public play() {
this._player.onDone(() => {
if(this._isInfinite){
this.reset();
this.play();
}
});
this._player.play();
}
public reset() {
this._player.reset();
}
}
我想无限播放动画。
似乎animation-iteration-count
不支持(无限)。或者也许我用错了。
使用onDone
回调我可以重置和重播AnimationPlayer
.
无限动画循环有效。
我正在寻找一种更好的方法来无限化这个动画。有什么建议或帮助吗?
解决方案
推荐阅读
- apache-spark - 集群扩展时动态更改分区数
- mysql - 从属列约束
- python - Python- 获取保存在浏览器中的网站的 cookie (Chrome/FireFox)
- apache-kafka - 将 AVRO 文件发布到 kafka 主题
- java - XSD:不需要元素“AdditionalData”
- apache-spark - Kafka 分区如何在 Spark 流中与 Kafka 共享?
- html - 如何将“最后一个孩子”样式应用于不是 :last-child 元素?
- python - 如何使用 python 脚本选择 ParaView OpenFOAM 案例中的所有网格区域?
- mysql - mysql存储过程根据订购数量分配确认的数量?
- javascript - 安装 webpack - 找不到入口模块。无法解析“文件”或“目录”