Angular动画:未知高度变化
创始人
2024-10-24 14:00:52
0

对于这个问题,我们需要使用Angular提供的动画状态和触发器,以便在状态发生变化时执行动画。这个解决方案涉及到以下步骤:

  1. 定义变化状态(从未变化到变化后的状态)

在组件的简单模板中,添加一个类来表示变化后的状态。在下面的示例中,我们为高度变化定义了两个状态:“expanded”和“collapsed”。要在模板中使用这些状态,我们需要使用动画元数据枚举animate,设置“从原始状态到目标状态的样式”和“过渡时间”。

animations: [ trigger('expandAnimation', [ state('collapsed', style({ height: '0px', opacity: 0 })), state('expanded', style({ height: '*', opacity: 1 })), transition('collapsed <=> expanded', animate('500ms ease-in-out')) ]) ]
  1. 监测高度的变化

为了在高度发生变化时触发动画,我们需要监测容器元素高度的变化。为此,我们需要使用Angular的Renderer2服务,对DOM进行相应的操作。在组件的构造函数中,将Renderer2服务注入到组件中,在ngAfterViewInit钩子中,使用它来监测容器元素高度的变化。

constructor(private renderer: Renderer2, private elementRef: ElementRef) {}

ngAfterViewInit() {
  this.renderer.setStyle(this.elementRef.nativeElement, 'height', this.expanded ? 'auto' : '0');
  this.height = this.elementRef.nativeElement.scrollHeight + 'px';
  this.renderer.setStyle(this.element

相关内容

热门资讯

德州ai机器人!wepoke智... 德州ai机器人!wepoke智能ai,(WEPOKE)最初存在有挂(详细辅助新版2025教程);免费...
透视软件(wpk透视辅助测试)... 透视软件(wpk透视辅助测试)wepoke怎么使用模拟器(详细辅助详细教程)往昔真的是有挂1、起透看...
德州之星外挂!红龙扑克有没有作... 1、德州之星外挂!红龙扑克有没有作假,(来玩德州app)本然是真的有挂(详细透视德州教程);详细教程...
透视好友(aapoker发牌机... 透视好友(aapoker发牌机制)wopoker系统机制(详细辅助德州论坛)原先有挂1、完成透视辅助...
wpk外挂!wpk数据统计软件... wpk外挂!wpk数据统计软件,(wepOkE)起初存在有挂(详细辅助2025新版总结);亲真的是有...
wepokeai机器人!微扑克... wepokeai机器人!微扑克系统是不是有问题,(AAPOKEr)原本真的是有挂(详细辅助新2025...
透视智能ai(德州之星辅助挂)... 透视智能ai(德州之星辅助挂)德州aa扑克平台(详细辅助技巧教程)切实有挂1、下载好辅助软件之后点击...
微扑克辅助器ios!德州哪里有... 微扑克辅助器ios!德州哪里有扑克辅助器,(wePOke)最初有挂(详细透视攻略教程)1、很好的工具...
透视游戏(wepoke有辅助挂... 透视游戏(wepoke有辅助挂)德州数据辅助器(详细辅助2025新版教程)原先存在有挂1、下载好辅助...
WePoKe透视挂!线上德州a... WePoker透视辅助工具核心要点解析‌,WePoKe透视挂!线上德州ai机器人,(wepOke)其...