Moderní tvorba webových aplikací

O webu

Výkon animací s transition: all

Je lepší psát transition: all, nebo vyjmenovávat vlastnosti, které se mají animovat?

3 minuty

Pomocí CSS vlastnosti transition jde snadno vytvářet plynulé přechody mezi stavy přímo v CSS.

Následující kód způsobí, že po najetí bude odkaz plynule přebarven z červené na modrou:

a {
  color: red;
  transition: color .3s;
}
a:hover {
  color: blue;
}

Při animování většího počtu CSS vlastností jde uvést klíčové slovo all:

transition: all .3s;

Odpadá tak nutnost vyjmenovávat více vlastností, co se mají animovat.

transition: color .3s, opacity .3s, background-color .3s

Rychlost

Mohlo by se zdát, že vyjmenování všech vlastností, které se mají animovat, bude úspornější k systémovým prostředkům.

Podle mých testů (při měření v DevTools → Timeline) je ale rozdíl mezi vyjmenováním hodnot a použitím all naprosto zanedbatelný, navíc použití all je nepatrně rychlejší.

Zdá se tedy, že prohlížeče dokáží rozpoznat, které vlastnosti je možné animovat a zároveň u nich nastala změna.

Výhody transition: all

Otázka výkonu je tedy zanedbatelná.

Zajímavější je:

  1. stručnější zápis – není potřeba všechny vlastnosti vyjmenovávat,

  2. společná délka animace – většinou je žádoucí mít všechny přechody stejně dlouhé; potom není nutné dobu uvádět duplicitně,

  3. automatické přechody – po přidání nové animovatelné vlastnosti bude automaticky animovaná

Proč nepoužívat transition: all

Důvody, proč se automatickému animování všeho co jde vyhnout, plynou z podstaty chování transition: all.

  1. Potřeba animovat jen něco. Použití all může zanimovat i vlastnosti, které se animovat nemají.

  2. Animovat různé vlastnosti různou dobu.

  3. Při vyjmenování vlastností může být kód čitelnější (je jasné, co má autor zájem animovat).

Související články

CSS pseudo element ::marker

CSS pseudo element ::marker umožňuje stylovat odrážky seznamů

4 minuty

Zobrazení dlouhé URL

Jak zobrazit dlouhé URL v aplikaci, aby nerozbila layout.

6 minut

Převod písmen na VELKÁ a malá

Převedení textu na velká nebo malá písmena.

12 minut

Možnosti stylování <iframe>

Co lze a nelze u <iframe> ovlivnit pomocí CSS a jak na změnu textu nebo barev.

10 minut

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků
2013–2025