【问题标题】:AngularJS temporarily disable animationsAngularJS 暂时禁用动画
【发布时间】:2016-03-26 04:04:44
【问题描述】:

我有一个相当复杂的ng-repeat。显示项目的数量可以通过两个按钮来控制。 第一个按钮使用过滤器从 ng-repeat 中删除单个元素。 第二个按钮删除一堆元素并显示一堆其他元素(也使用过滤器)。

我目前在 ng-repeat 上有这样的动画:

<style>
   .animation {
    -webkit-transition: 1s;
  }
  .animation.ng-enter {
    opacity: 0;
  }
  .animation.ng-enter.ng-enter-active {
     opacity: 1;
   }
   /* Similar for ng-leave */
</style>

<div class="animation" data-ng-repeat="item in items"> ... </div>

当用户单击第一个按钮时,我希望元素使用动画。 当用户单击第二个按钮时,我想禁用任何动画。

我正在使用 AngularJS 1.2.16。

【问题讨论】:

    标签: css angularjs css-animations ng-animate


    【解决方案1】:

    您可以使用ng-class 指令有条件地拥有animation 类。不需要时删除animation 类,特别是点击第二个按钮时。

    <div ng-class="{animation: expression }" data-ng-repeat="item in items"> ... </div>
    

    在上面的 sn-p expression 将是条件/范围变量,它将设置为 false 以便 animation 将被删除并且动画将被禁用。

    【讨论】:

    • 我认为如果函数在控制器中做更多的事情,它应该首先将expression设置为false,然后将其余代码放入$timeout(或类似那)允许视图呈现和删除animation类
    • @AlonEitan 谢谢,确实需要超时!
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多