2015-02-06 116 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