【发布时间】:2017-04-11 10:07:27
【问题描述】:
如How to ng-hide and ng-show views using angular ui router 所述,我有以下标记:
<div class='container'>
<div ng-show='$state.includes('state1')></div>
<div ng-show='$state.includes('state2')></div>
</div>
在 css 中使用 flex-box:
.container {
display: flex;
flex-direction: column;
}
现在,当我在两种状态之间切换时,两个 div 都会显示为眨眼,导致丑陋的眨眼效果。
我从 Angularjs - ng-cloak/ng-show elements blink 尝试了 ng-cloak,但没有任何成功。
我不能使用 ng-if,因为我使用来自 ui-router-extras 的“粘性状态”,这需要 DOM 持久化。
【问题讨论】:
-
你试过用
ng-animate为ng-show制作动画吗?前任。.ng-hide-add { animation:0.5s showdiv ease; } .ng-hide-remove { animation:0.5s hideDiv ease; } -
默认使用备用 css 类隐藏。
<div class="default-hide" ng-show="$state.includes('state1')}"></div>。默认隐藏应该有一个display: none,避免!important。 -
隐藏添加延迟,但隐藏删除没有。当我将时间设置为 2 秒左右时,眨眼变成了长时间的眨眼。它显示了一个很好的解决方案,但是通过延迟隐藏删除而不是隐藏添加。只有我不能让它工作..
-
@MiguelLattuada 默认隐藏它根本不显示。我想尝试在 $state.includes() 上添加一个带有 ng-class 的类。看起来就像重建 ng-show..
-
你找到问题了吗?
标签: css angularjs angular-ui-router ng-show angular-ui-router-extras