Wie zu animieren Umschalten der Zeilen?

Möchte ich animieren, die erscheinen und verschwinden der Zeilen.

Zunächst versuchte ich mit einem CSS - übergang, aber es Tat nichts, aufgrund der änderung der display Eigenschaft.

So, ich habe eine animation, die funktioniert wie erwartet.

Das problem ist, die volle Höhe der Zeile ist reserviert, wenn die animation beginnt. Siehe snippet unten für eine illustration des Problems: Zeile 3 nach unten, sofort, bevor die animation beginnt.

Wie kann ich animieren Sie die Höhe der Zeile schrittweise, so dass es dauert nur so viel Platz wie benötigt?

Und als bonus:

  • es sollte nicht erforderlich, eine Feste Höhe für Zeilen
  • es sollte angezeigt werden, wie eine übersetzung, sondern als eine Skalierung; es sollte so Aussehen, wie es Schiebe von unten die Zeile oben
  • es sollte bidirektionale (das Gegenteil tun, wenn ich es ausblenden)

JS:

$('button').on('click', function() {
  $('tr:nth-child(2)').toggleClass('active');
});

CSS:

@keyframes anim {
  0% {
    transform: scaleY(0);
  }
  100% {
    transform: scaleY(1);
  }
}
tr {
  background: #eee;
  border-bottom: 1px solid #ddd;
  display: none;
  transform-origin: top;
}
tr.active {
  display: table-row;
  animation: anim 0.5s ease;
}
td {
  padding: 10px;
}

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<button type="button">Toggle</button>
<table>
  <tbody>
    <tr class="active">
      <td>Row 1</td>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>Row 2</td>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr class="active">
      <td>Row 3</td>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>

  • Habe meine Antwort Ihnen geholfen? ... wenn Nein, kann ich etwas verbessern oder klären?
  • Sorry für die nicht feedback geben, früher war ich warten um zu sehen, wenn andere Menschen kommen mit alternativen Lösungen. Ich Schreibe meine Kommentare auf Ihre Antwort direkt.
  • Möglich, Duplikat der CSS3 übergang auf die Tabelle Zeile mit height-Eigenschaft
InformationsquelleAutor Benjamin | 2016-05-22
Schreibe einen Kommentar