带有引导程序的Angular2动画

Posted

技术标签:

【中文标题】带有引导程序的Angular2动画【英文标题】:Angular2 animation with bootstrap 【发布时间】:2017-04-30 01:13:42 【问题描述】:

我有一行分为 3 列,带有 2 个按钮来隐藏左右面板:

 col-md-3      col-md-7      col-md-2
------------------------------------
|         |                  |     |
|   left  |   middle panel   |     | <= right panel
|  panel  |                  |     |
|         |                  |     |
|         |                  |     |
------------------------------------
<<<                              >>>

当我点击左键时,我希望我的中间面板占据左边的所有空间:

            col-md-10       col-md-2
------------------------------------
|                            |     |
|      middle panel          |     | <= right panel
|                            |     |
|                            |     |
|                            |     |
------------------------------------
<<<                              >>>

当我单击右侧按钮时,右侧的行为相同。 如果我同时点击两者,我的中间面板应该占据所有空间。

当我只是在我的 div 上切换类时效果很好(例如 col-md-7 => col-md-12)。 现在我希望它是动画的,具有平滑的过渡。我试着按照这个回复:Animate bootstrap columns 但我不想使用 JQuery。 Angular2动画可以吗?

【问题讨论】:

【参考方案1】:

您应该能够在面板上使用适当的 CSS 样式和 *ngIf / [ngClass] 来实现此效果:

CSS

.middle-panel 
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    -ms-transition: all 0.5s ease;
    transition: all 0.5s ease;

HTML

<div class="left-panel col-md-3" *ngIf="(middleToggled == false)"></div>

<div class="middle-panel" [ngClass]=" 'col-md-7' : (! middleToggled), 'col-md-10' : (middleToggled) "></div>

<div class="right-panel col-md-2"></div>

【讨论】:

我尝试了类似的方法,但无法正常工作。当我单击右键时,它运行良好,但这是唯一的情况。当我单击左侧按钮时,中间面板向左移动并在其右侧展开。当我第二次点击右侧时,我的面板在动画结束之前显示,并在第二行显示一点时间,因为中间面板仍在'col-md-9'

以上是关于带有引导程序的Angular2动画的主要内容,如果未能解决你的问题,请参考以下文章

带有引导事件的 Angular2 不会触发可观察到的变化

Vue js引导程序在折叠时添加动画

将引导程序添加到 angular2-seed 项目的 webpack 包中

Angular2 webpack:如何导入引导 css

Angular 2,使用 Jquery 操作引导程序

如何使用引导程序更改导航栏中的过渡动画?