2015-02-06 111 views
0

我实现了一个可以用滑动动画显示/隐藏表格行或列的内容的函数。表格的jQuery幻灯片动画

代码的作用:

  1. 检索柱(thtd)的所有细胞
  2. 裹每个单元的在一个<div class="wrapper" />
  3. 内容动画包装div的width与jQuery.animate();
  4. 完成后,拆开包装单元格内容(删除DIV)

为什么我需要包装DIV的原因是因为jQuery无法对表格单元格幻灯片动画直接 - 看How to Use slideDown (or show) function on a table row?

代码和演示见codepen。我删除了尽可能多的JS代码来展示我的问题。 (?二)(可以忽略HTML和CSS,它们不包含相关信息)

一切完美的行和列,区别在于一个问题:

  • 当列被缩小时,当没有足够的空间时,内容最终开始打包。当发生这种情况时,细胞高度突然增加,导致跳跃难看。

  • 当单元格内容不需要单元格的整个空间时,该内容的显示动画更快,从而导致难看的输出。

enter image description here

我想才达到的,而不会影响布局的不断变化的宽度。其他列不得受到影响。 任何想法,我可以实现这一点?

回答

0

,你可以窝的股利与溢出另一个DIV隐藏:

.crop { 
    overflow:hidden; 
    width:100px 
} 
.inner { 
    min-width:300px; 
    width:auto; 
} 

http://jsfiddle.net/mikatalk/7xwLjp2e/

+0

你设置的宽度 - 当我开始扩展列,我不知道它的最终宽度,所以我无法设置它。没有宽度,将其包装在另一个div中没有​​任何效果:http://codepen.io/anon/pen/MYOoEo?editors=001 – maja 2015-02-06 18:05:25

+0

我设置的宽度(300px)将是布局的最大宽度。 – mika 2015-02-06 18:07:17

+0

在我的情况下,表格的布局可能会在隐藏时发生变化 - 每个单元格的内容都可以修改,并且在完成所有操作后,该列会被动画。因此,我不知道最大宽度(它是不清楚,直到浏览器呈现所有内容 - 这只发生在动画完成后)。 – maja 2015-02-06 18:13:45