当前位置: 首页 > 知识库问答 >
问题:

如何在Angular中为*ngIf添加过渡效果?

傅安宁
2023-03-14

假设你在component.html有两个这样的裂口

<div *ngIf="htmlSegment == 'a" >
    {{someMessage}}
</div>


<div *ngIf="htmlSegment == 'b" >
    {{someMessage}}
</div>

当您将htmlSegment设置为a或b时,我们知道真实值段会出现,而另一个会消失。没有问题。

但是,如何才能使这些片段的外观和消失具有一些过渡效果;例如淡入或淡出等?

是否有可能确保在新的htmlSegment中完成dom之后开始转换?(这是为了使用户不会体验到任何闪烁或页面抖动,除了令人敬畏的淡入淡出。)

共有1个答案

龙繁
2023-03-14

Animate模块不会为HTML元素设置动画,但当Animate注意到某些事件(如隐藏或显示HTML元素)时,元素会获得一些预定义的样式(或类),这些样式可用于制作动画。

将动画模块添加到项目中:

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

将动画属性添加到组件:

animations: [
  trigger('heroState', [
    state('a', style({
     backgroundColor: 'yellow',
     opacity:0.5
    })),
    state('b', style({
     backgroundColor: 'black',
     opacity:1
    })),
    transition('a => b', animate('100ms ease-in')),
    transition('b => a', animate('100ms ease-out'))
  ])
]

当herostate改变时将调用触发器。

最后,您的HTML代码将是:

<div *ngIf="htmlSegment == 'a" 
 [@heroState]="a">
    {{someMessage}}
</div>

<div *ngIf="htmlSegment == 'b"
[@heroState]="b" >
    {{someMessage}}
</div>

我无法创建此代码的Angular2在线示例,但我创建了一个Angular JS在线示例,用于感知动画中发生的具体情况。(要更改动画,您可以将“nga slide down”类更改为“nga fade”或您自己的类)

在线检查(AngularJS-检查右侧面板上的自动运行js并单击更改按钮)

 类似资料:
  • 我想要一个div从右边滑入角2使用CSS。 如果我只使用[ngClass]来切换类和使用不透明度,我就能正常工作。但是li不想从一开始就呈现该元素,所以我首先用ngIf“隐藏”它,但是之后的过渡就不起作用了。

  • 该项目提供了两种动画变体。 动画选项1,触发器('imationOption1') 无投诉。 动画选项2,触发器('imationOption2') 转换在此处不起作用。 在线查看这个项目在StackBlitz.com app.component.html 应用程序组件.ts 谷歌搜索并没有导致解决方案。

  • 问题内容: 在我的应用程序中,我想用JTable的行创建过渡效果。例如,当鼠标进入该行时,该行的背景颜色将改变;相反,当鼠标退出该行时,该行的颜色将恢复正常。 我怎样才能做到这一点? 问题答案: 使用下面的代码,这将为您提供关于对JTable的行应用翻转效果的想法。

  • 我正在寻求对组件中的徽章进行动画处理。它有两种可能的状态: 隐藏 显示 当徽章从隐藏转变为显示时,我希望它淡入页面,当徽章由显示转变为隐藏时,我想它淡出。这部分工作得很好-我只需在0和1之间更改不透明度值的状态。 然而,当徽章被隐藏时,它仍然在DOM上,因为它是按钮的一部分,所以在鼠标悬停时看到徽章仍然被占用的所有空白空间看起来很奇怪。理想情况下,当它被隐藏时,我希望它从DOM中消失。 为此,当徽

  • CSS3 过渡是元素从一种样式逐渐改变为另一种的效果。 尽管 CSS3 过渡效果是足够的过渡的一个元素,但是 text-transform 属性可以提高 CSS3 过渡效果的风格。 主要有四个属性的CSS3转换效果,已被描述如下: transition-property transition-duration transition-timing-function transition-delay

  • 如何给 el-tabs 添加切换页面的过渡动效 当我用下面的代码切换页面时,离开的过渡动效不生效 相关代码: 我该怎么做才可以完美的给 el-tabs 添加切换页面的过渡动效