【问题标题】:How can I animate a table row with a single column that spans multiple columns?如何使用跨越多列的单列为表格行设置动画?
【发布时间】:2014-08-17 22:31:26
【问题描述】:

我正在使用 Angular 的 ngAnimate 将 CSS 动画应用于表格。单击表格上的一行时,我希望描述以动画方式打开。描述是第二个表格行,其中有一个 td,它有一个 colspan="7"。但是,在动画过程中,它只动画到表格的第一列。动画完成后,它会展开以占据整个宽度。下面是一个显示行为的动画 gif。

关于如何解决这个问题的任何想法?我尝试了很多不同的方法,包括保持trtd 可见但没有内容,然后在td 内设置一个元素的动画。但是,当我这样做时,动画根本不会发生;该行只是突然打开和关闭,就好像根本没有动画一样。

这是应用于表格行的动画 CSS。

.animate-slide-down.ng-hide-add,
.animate-slide-down.ng-hide-remove.ng-hide-remove-active {
  transition: 1s ease-out all;
  transform: scale(1);
  transform-origin: right;
  line-height: 1.42857;
  display: block !important;
}

.animate-slide-down.ng-hide-remove,
.animate-slide-down.ng-hide-add.ng-hide-add-active {
  transition: 1s ease-out all;
  transform: scale(0);
  transform-origin: left;
  line-height: 0;
  display: block !important;
}

【问题讨论】:

  • 谢谢,我很感激。这是我们俩的胜利! (我会把你的viola,一把小小提琴,改成voilà,可惜系统不让我;=)但后来我看到了wallah 前几天...)。
  • 我听到了 - 每个人对 Stack Overflow 的期望都略有不同。我想我更喜欢来自现在古老的 IRC 和 NG 网络礼节的略微强迫症规则。 FWIW 我一直支持Be Nice 的论点(事实上,我写了很多Meta 材料,要求减少Torvalds 式的磨蚀性)。我在编辑方面的解决方案是在我的帖子被编辑时“练习快乐”——我真的很感激它被阅读。
  • 我同意规则已经收紧了一点 - 我的经历是一样的。不过我更喜欢这样——我们现在要求问题,而糟糕的问题大多被关闭或删除。这很好,因为这意味着质量水平很高(或者至少没有尽可能快地下降)。可悲的是,作为一名编辑,我看到了一些非常糟糕的内容,我尝试做清洁工作,因为奇怪的是,我关心我们在这里形成的(奇怪的)社区。​​span>

标签: javascript html angularjs css css-animations


【解决方案1】:

没关系。我想到了。它与display CSS 属性有关。 Angular 的 ngShow 指令在隐藏元素时将 display: none 应用于元素。这个属性会使折叠动画根本不起作用。为了解决这个问题,我将display: block !important 应用于动画选择器(过去我已经多次这样做了,所以我没有三思而后行)。 display: block不显示表格行,需要设置为display: table-row !important

一旦我将动画规则更改为:

.animate-slide-down.ng-hide-add,
.animate-slide-down.ng-hide-remove.ng-hide-remove-active {
  transition: 1s ease-out all;
  transform: scale(1);
  transform-origin: right;
  line-height: 1.42857;
  display: table-row !important;
}

.animate-slide-down.ng-hide-remove,
.animate-slide-down.ng-hide-add.ng-hide-add-active {
  transition: 1s ease-out all;
  transform: scale(0);
  transform-origin: left;
  line-height: 0;
  display: table-row !important;
}

这解决了问题:)

【讨论】:

  • 您的用户真的喜欢这样吗?我觉得这很烦人,但我猜每个人都有自己的想法。
  • 我放慢了这个例子。在实际应用中,它的速度非常快。在堆栈上轻松查看问题太快了。在我构建的其他应用程序中,我从来没有人抱怨过。我只对它的光滑感有过积极的反馈。这是最终版本:i.imgur.com/7dTGMA1.gif(gif 感觉比实际的要慢一些,但足够接近)
猜你喜欢
  • 1970-01-01
  • 2013-03-19
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多