Angular (4, 5, 6, 7) - ngIf 上滑入滑出动画的简单示例

标签 angular typescript angular-animations

滑入滑出容器元素的最低限度和 Angular4 的原生方式是什么?

例如

<div ngIf="show">
    <!-- Content -->
</div>

滑入内容(从上到下就像 jQuery。slideDown ())当 show 变为 true 时。

show 变为 false 时,

滑出内容(适本地带有缓出效果)。

最佳答案

首先是一些代码,然后是解释。描述这个的官方文档是 here .

import { trigger, transition, animate, style } from '@angular/animations'

@Component({
  ...
  animations: [
    trigger('slideInOut', [
      transition(':enter', [
        style({transform: 'translateY(-100%)'}),
        animate('200ms ease-in', style({transform: 'translateY(0%)'}))
      ]),
      transition(':leave', [
        animate('200ms ease-in', style({transform: 'translateY(-100%)'}))
      ])
    ])
  ]
})

在你的模板中:

<div *ngIf="visible" [@slideInOut]>This element will slide up and down when the value of 'visible' changes from true to false and vice versa.</div>

我发现 angular 的方式有点难以掌握,但一旦你理解了它,它就会变得非常简单和强大。

动画部分使用人类语言:

  • 我们将此动画命名为“slideInOut”。

  • 添加元素(:enter)时,我们执行以下操作:

  • ->立即将元素向上移动 100%(从自身开始),以显示在屏幕外。

  • ->然后对 translateY 值进行动画处理,直到我们处于 0%,元素自然处于该位置。

  • 当元素被移除时,将 translateY 值(当前为 0)设置为 -100%(离开屏幕)。

我们使用的缓动函数是 ease-in,在 200 毫秒内,您可以根据自己的喜好更改它。

关于Angular (4, 5, 6, 7) - ngIf 上滑入滑出动画的简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47248898/

相关文章:

angular - 通过隐藏/混淆代码来保护 Angular 6/7 应用程序

angular - 将 vanilla-tilt.js 添加到 Angular 6 组件(Angular 组件中的外部 JS 库)

javascript - 我如何在发布请求javascript中包含ssl证书

javascript - Angular2 ngModel 更改输入类型 ="number"上的绑定(bind)

Angular 4动画到高度*

javascript - 如何使用模板引用?

javascript - 如何在 ng for 中选择单击的元素并仅向所选元素添加类?

reactjs - dockerized React 应用程序中的 VSCode + Typescript

angular2组件过渡动画

angular - 如何重新初始化/重新触发使用动画系统制作的动画?