使用 Animate.css 很容易应用动画。就像,脑残容易。我知道有一种以 Angular2 为中心的方式来处理提供程序等(实际上我在我的一个 Angular 项目中就是这样做的),但在另一个项目中我做了不同的事情,发现它更容易、更灵活。
您下载 animate.css,将其与任何其他 CSS 文件一样捆绑到您的构建中,然后您就完成了设置。您可以通过 ngClass 动态应用类来为您的应用程序中的任何内容设置动画。您可以根据任何条件更改任何元素上的动画。
假设一个按钮(无论出于何种原因)可以是蓝色或红色。因此,您希望默认动画跟随按钮颜色。如果按钮改变颜色,你希望动画改变。
简单的。
<div [ngClass]="color === 'blue' ? 'animated pulse' : 'animated wobble'"
....></div>
想要“重启”动画?只需使用变量重置 ngClass。当更改检测开始时,将应用新值。
<div [ngClass]="myAnimationVariable"
....></div>
(其中 myAnimationVariable 类似于“动画摆动”或其他)。
无论如何,我发现它非常简单、轻量且有效。我听说过几次这不是“纯角度”方式,但这对我来说真的无关紧要。我正在捆绑/解析 CSS 并在模板中使用它而不直接访问 DOM,这很适合我。
请注意,您还可以将类应用于 ViewChild 的 nativeElement。效果很好。但这走的是“访问 DOM”的路线(即使你是通过 Angular 门控机制来做的),并且可能会不受欢迎。但是如果它提供了一个解决方案并且可以测试,那么它是实用的,所以我想指出它。