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

Jak udělat input s automatickou šířkou podle obsahu

Několik způsobů, jak dosáhnout toho, aby se textové pole rozšiřovalo a zužovalo podle délky zadaného textu.

9 minut

Šířka znaků ve fontech

Proč mají znaky různou šířku a jak to řešit v responsivním designu.

17 minut

CSS @starting-style

Jak animovat elementy při jejich prvním zobrazení pomocí at-pravidla @starting-style.

12 minut

CSS pseudo element ::marker

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

4 minuty

Novinky e-mailem

Když budu mít něco opravdu zajímavého, můžu vám to poslat e-mailem

Přidej se k 500+ čtenářům
Jen kvalitní obsah
Žádný spam

Web jecas.cz píše Bohumil Jahoda, kontakt
Seznam všech článků · Témata
2013–2026