【发布时间】:2021-04-20 17:05:31
【问题描述】:
我有一个实例,其中我有 3 个可能的滚动动画,具体取决于模型。我正在使用ng-if 来处理删除与模型条件不匹配的元素。当模型发生变化时,我的问题就出现了。匹配条件的元素开始滚动动画,但在动画完成之前似乎留下了前一个。检查元素确实表明分别应用了ng-leave 和ng-enter。
如何让不符合ng-if条件的旧动画立即隐藏?
查看
<div class='phrase' ng-if='status === "live"'>
LIVE
</div>
<div class='phrase' ng-if='status === "pending"'>
PENDING
</div>
<div class='phrase' ng-if='status === "finished"'>
FINISHED
</div>
SCSS
.phrase {
text-align: center;
color: rgba(255,255,255, 0.7);
font-weight: bold;
position: absolute;
white-space: nowrap;
width: 100%;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
font-size: 12vw;
animation: slide 10s linear infinite;
animation-direction: reverse;
@keyframes slide {
0% {
transform:translate(-270%, -50%);
}
100% {
transform:translate(50%, -50%);
}
}
【问题讨论】:
-
你可以绑定状态而不是使用它来隐藏元素吗?即
<div class="phrase">{{status | uppercase}}</div> -
这可能是一个更好的选择。我稍后会在这里查看。
标签: css angularjs sass ng-animate