【问题标题】:ng-animate multiple table rows do not animateng-animate 多个表行不动画
【发布时间】:2016-07-17 13:02:19
【问题描述】:

当项目出现在表格中时,我试图突出显示。可能有 2、3 或更多项目同时出现。但是,ng-animate 似乎没有正确处理此问题。

在下面的小提琴中,您可以看到表格行的工作用例(以及带有 div 元素的示例)。 div 元素动画正确。表格行元素没有。

Demo Fiddle

HTML

<table class="animate-appear">
  <tr ng-repeat="item in repeatingItems">
    <td>{{item}}</td>
    <td>{{item}}</td>
  </tr>
</table>

CSS(简体)

table.animate-appear tr td {
  padding: 5px 10px;
  transition: all 1s ease;
  opacity: 1;
}

table.animate-appear .ng-enter td,
table.animate-appear .ng-leave.ng-leave-active td,
table.animate-appear .ng-move td {
  opacity: 0;
  background-color: yellow;
}

table.animate-appear .ng-enter.ng-enter-active td,
table.animate-appear .ng-leave td,
table.animate-appear .ng-move.ng-move-active td {
  opacity: 1;
  background-color: white;
}

注意事项:
1. div 元素的动画效果似乎正确。这包含在小提琴中以进行比较。
2.表格行不能改为div元素。
3. 轻微的超时(在我的测试中只有 30 毫秒)会导致后续行正确动画。 这不是解决我的问题的可行解决方案。 4. 我关心ng-enter 动画。 5. 我尝试将动画样式应用于表格行,但没有成功。

为什么会这样?更重要的是,我能做些什么来使表格中的所有新元素都能正确设置动画?

【问题讨论】:

  • 上例中的小提琴似乎是“固定”版本。可以链接到非固定? (看起来以 /6 结尾的 url 是“损坏”版本)
  • @ryanm - 上面的版本表现出错误的行为。单击“添加项目”会添加三个项目:它正确地动画第一个条目,而不是第二个条目,并动画第三个条目(它有一个轻微的超时)。固定版本为jsfiddle.net/cale_b/od7kam48/12
  • 我现在明白了,感谢您的澄清。

标签: javascript angularjs ng-animate


【解决方案1】:

表格的动画 css 导致冲突,因为它同时应用于行和单元格。如果您更改 css 以使动画仅适用于该行,则它应该正确动画。

table.animate-appear tr {
  transition: all 1s ease;
  opacity: 1;
}

table.animate-appear td {
  padding: 5px 10px;
  opacity: 1;
}

table.animate-appear .ng-enter,
table.animate-appear .ng-move {
  opacity: 0;
  background-color: yellow;
}

table.animate-appear .ng-enter.ng-enter-active,
table.animate-appear .ng-leave,
table.animate-appear .ng-move.ng-move-active {
  opacity: 1;
  background-color: white;
}

【讨论】:

  • 这里是update。我也在chrome中运行它。对我来说,它看起来是正确的,但也许它以我不理解的不同方式失败。
  • 在这个fiddle 中,我还更新了背景色css 动画,使其仅适用于tr 元素,看起来一样,虽然div 版本较慢,尤其是删除。
  • 太棒了。我已将其缩减为相关位 - 如果您在答案中更新代码以包含正确/缩减的 css,我会接受。看到这个小提琴“减少”的CSS:jsfiddle.net/cale_b/od7kam48/12
  • 已编辑 - 感谢您对我的反馈的反馈,我对堆栈溢出很陌生!
猜你喜欢
  • 2014-12-31
  • 2017-02-15
  • 2014-07-24
  • 2014-12-02
  • 1970-01-01
  • 2013-12-01
  • 2017-01-14
  • 2016-04-29
  • 2013-05-02
相关资源
最近更新 更多