Angular/CSS - 动态添加新元素时动画移动内容

Angular/CSS - Animate shifting of content when new elements are dynamically added

Angular 动画菜鸟在这里。

我可以使用 ngAnimate 成功地将内容动画化到页面上。然而,当我的新内容滑入时,它下面的所有内容都会跳到新位置。同样,当删除新内容时,以下内容会跳回。是否有 angular 方法来为以下内容的新位置设置动画?

<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;
}

@klauskpm 让我完成了大部分工作,而 this blog post 是缺失的部分。

解决方案:

  1. 将按钮放在 div
  2. 将div的首字母max-height设为0px
  3. 指定 div 的 max-height 属性
  4. 的转换
  5. 要显示按钮时,增加div
  6. max-height属性

更新代码:

<div class="button-container" ng-class="{'has-button': typingResponse}">
  <button class="button" ng-if="typingResponse">
    Submit
  </button>
</div>
<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 $slide-dur;
  animation: slideInLeft $slide-dur;
}
.button.ng-leave {
  -webkit-animate: slideOutLeft $slide-dur;
  animation: slideOutLeft $slide-dur;
}


.button-container {
  max-height: 0px;
  transition: max-height $slide-dur linear;
  -webkit-transition: max-height $slide-dur linear;
}

.button-container.has-button {
  max-height: 100px;
}