您的位置:58编程 > angular 动画 Angular 可复用动画

angular 动画 Angular 可复用动画

2023-03-21 20:33 Angular13

angular 动画 Angular 可复用动画

angular 动画

Angular 动画是 Angular 框架中的一个重要组成部分,它可以帮助开发者在应用程序中添加动态效果。Angular 动画使用 CSS3 和 JavaScript 来实现,可以让开发者创建出流畅、有趣的交互体验。

Angular 动画使用一个名为 @angular/animations 的包来实现,该包提供了一系列的 API,可以帮助开发者在应用中实现动态效果。Angular 动画 API 使用一个名为 AnimationBuilder 的工厂方法来创建动画,该方法允许开发者使用 JavaScript 来定义动画的行为和样式。

Angular 动画还提供了一些预定义的函数,这些函数可以帮助开发者快速创建复杂的动态效果。例如,animate() 函数允许开发者在特定时间内执行多个 CSS3 过渡或动画;而 stagger() 函数则允许开发者在特定时间内执行多个不同的过渡或动画。

const animation = animationBuilder.build([
    animate('1s', style({ opacity: 0 })), // fade out 
    animate('2s', style({ opacity: 1 })), // fade in 
    stagger(200, [ // stagger the animations 
        animate('1s', style({ transform: 'translateX(-100px)' })), 
        animate('1s', style({ transform: 'translateX(100px)' })) 
    ]) 
]);

Angular 可复用动画

可复用动画

本主题提供了一些关于如何创建可复用动画的例子。

前提条件

在继续本主题前,你需要熟悉下列知识:

  • Angular 动画简介
  • 转场与触发器

创建可复用动画

要想创建可复用的动画,请使用 ​animation()​ 方法来在独立的 ​.ts​ 文件中定义动画,并把该动画的定义声明为一个导出的 ​const ​变量。然后你就可以在应用的组件代码中通过 ​useAnimation()​ 来导入并复用它了。

import { animation, style, animate, trigger, transition, useAnimation } from "@angular/animations";

export const transitionAnimation = animation([
  style({
    height: "{{ height }}",
    opacity: "{{ opacity }}",
    backgroundColor: "{{ backgroundColor }}"
  }),
  animate("{{ time }}")
]);

在上面的代码片段中,通过把 ​transitionAnimation ​声明为一个导出的变量,就让它变成了可复用的。

注意:
height​、​opacity​、​backgroundColor ​和 ​time ​这几个输入项会在运行期间被替换掉。

你还可以导出某个动画的一部分。比如,下列代码片段会导出 ​trigger ​这个动画。

import { animation, style, animate, trigger, transition, useAnimation } from "@angular/animations";
export const triggerAnimation = trigger("openClose", [
  transition("open => closed", [
    useAnimation(transitionAnimation, {
      params: {
        height: 0,
        opacity: 1,
        backgroundColor: "red",
        time: "1s"
      }
    })
  ])
]);

从现在起,你可以在组件类中导入这些可复用动画变量。比如下面的代码片段就导入了 ​transitionAnimation ​变量,并通过 ​useAnimation()​ 函数来复用它。

import { Component } from "@angular/core";
import { transition, trigger, useAnimation } from "@angular/animations";
import { transitionAnimation } from "./animations";

@Component({
  selector: "app-open-close-reusable",
  animations: [
    trigger("openClose", [
      transition("open => closed", [
        useAnimation(transitionAnimation, {
          params: {
            height: 0,
            opacity: 1,
            backgroundColor: "red",
            time: "1s"
          }
        })
      ])
    ])
  ],
  templateUrl: "open-close.component.html",
  styleUrls: ["open-close.component.css"]
})


阅读全文
以上是58编程为你收集整理的angular 动画 Angular 可复用动画全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS