【问题标题】:Animate expanding table row动画扩展表格行
【发布时间】:2014-07-14 01:48:53
【问题描述】:

我有一个用表格表示的日历。每天的内容可能太多而无法显示,因此固定高度并隐藏溢出。但是,当用户将鼠标悬停在该行上时,我将整个行展开。这是完美的工作。我需要将行中 div 从 height:60px 到 height:auto 的 transition 缓和下来,也许将其减慢到大约 500 毫秒。

我使用的是 AngularJS 1.2,我已经加载了 ngAnimate 以及 animate.css(在应用程序的其他地方使用)。

日历中的每一天都是 td 标签中的一个 div。

div.cal_container
{
  height:60px; 
  overflow:hidden;
}

当我将鼠标悬停在该行上时,这是我用来展开整行的:

table.cal tr:hover > td > div
{
  height:auto;
}

如何为高度过渡设置动画?

【问题讨论】:

  • 您的行是否在 ngRepeat 中?你试过什么了?你想在 ngAnimate 中使用 CSS 过渡吗?
  • 是的,行(周)和列(天)都有 ngRepeats,如下所示:。过渡效果很好。
  • 忘记添加我尝试添加“过渡:高度 0.5s;”到上面显示的两个 CSS 部分。

标签: angularjs animation


【解决方案1】:

问题似乎是过渡不喜欢 height:auto。我找到了这个解决方案/解决方法,它给了我想要的 95%:

为 div 添加最大高度:

div.cal_container
{
  height:60px; 
  overflow:hidden;
  max-height: 60px;
}

在行选择器 CSS 中将过渡添加到 max-height

table.cal tr:hover > td > div
{
  max-height: 1000px;
  transition: max-height 0.75s ease-in;
  height:auto;  
}

我想得到的最后一点是在它们停止悬停时轻松过渡回 height:60px,但这并不重要。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签