angularjs – 告诉ngAnimate只能动画ngShow / ngHide

前端之家收集整理的这篇文章主要介绍了angularjs – 告诉ngAnimate只能动画ngShow / ngHide前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个AngularJS 1.2.2 web应用程序,其< div>我根据一些$scope属性显示/隐藏.使用ngAnimate模块,我可以动画显示和隐藏< div>.
<div id="square" ng-show="showSquare" class="animate-shiny"></div>

我也有一个我想要放在这个< div>为此我使用ngClass.

<div id="square" ng-show="showSquare" class="animate-shiny" ng-class="{ cool: extraCool }"></div>

而且正如它发生的那样,有时候,类可以在与< div>被显示/隐藏这导致显示/隐藏动画不再工作,可见它发现ngClass更有趣的动画,即使我不想使用ngAnimate的动画.

Here’s a Plnkr that demonstrates the behavior.点击显示/隐藏按钮效果很好,点击make cool按钮效果很好,但组合这两个按钮的按钮会导致显示/隐藏动画中断.

我该如何解决?我可以不手动解决$animate吗?

提前致谢!

问题在于,您正在尝试使用该类进行动画处理,而不应在动画时间之间进行区分.也就是说,您的过渡效应一般适用于该类,即在该类引用时,该动画会被视为必须进行工作.我修改了你的css有一点要相当接近,如果不是完全,你想要什么:
#square {
  width: 50px;
  height: 50px;
  background-color: blue;
  transition: 0.4s all ease-out;
}

#square.cool {
  Box-shadow: 0 0 10px 3px green;
  background-color: lightgreen;
}

#square.ng-hide-add,#square.ng-hide-remove
{
  display: block !important; 
}

#square.ng-hide-remove,#square.ng-hide-add.ng-hide-add-active{
  margin-left: -80px;
    opacity: 0;
}

#square.ng-hide-remove.ng-hide-remove-active,#square.ng-hide-add{
  margin-left: 0;
    opacity: 1;
}

这是新的plunkr,所以你可以玩:http://plnkr.co/edit/a7wiZfCrEGCXfIDSvF9r?p=preview

如果您只想对显示/隐藏进行动画处理,并且不想要对颜色进行转换,只需将转换移到#square.ng-hide-add,#square.ng-hide-remove声明.

猜你在找的Angularjs相关文章