【发布时间】:2016-07-09 19:36:04
【问题描述】:
角动画菜鸟在这里。
我可以使用ngAnimate 成功地将内容动画化到页面上。但是,当我的新内容滑入时,它下面的所有内容都会跳到新位置。同样,当新内容被删除时,以下内容会跳回。是否有角度的方式来为以下内容的新位置设置动画?
<button class="button" ng-if="typingResponse">
Submit!
</button>
<div class="response-section">
<label class="item item-input item-stacked-label">
<span class="input-label">Response</span>
<textarea></textarea>
</label>
</div>
.button.ng-enter {
-webkit-animate: slideInLeft 1s;
animation: slideInLeft 1s;
}
.button.ng-leave {
-webkit-animate: slideOutLeft 1s;
animation: slideOutLeft 1s;
}
【问题讨论】:
-
这是一个不错的 gif 动画,不幸的是,如果没有真正的 html+css 或更好的东西,它就毫无价值 - 一个工作示例
-
创建这个空间是因为在最终位置有一个元素在等待动画结束。当它做相反的事情时,它会使那个元素消失。您需要先为盒子设置动画,然后在动画完成后,开始您的动画。你的第二个动画需要做相反的事情。
-
@AlonEitan 添加了部分代码
-
@klauskpm 你对如何做到这一点有什么建议吗?如果我想首先为“响应”框设置动画,我需要知道传入的“提交”按钮的高度。但是,当我想要执行此动画时,按钮尚未在 DOM 上。
-
好的。我已经考虑了第二个想法,也许为您提供了一些更简单的解决方案。创建一个
div或您选择的任何元素,并将其高度设置为在CSS 上有一个transition。内容将是提交按钮,因此在创建时,外部框(您创建的 div)将执行动画以适应其内容,或者应该是这样。
标签: angularjs css ionic-framework css-transitions ng-animate