Plynulý přechod mezi stránkami

Jak vytvořit plynulý animovaný přechod mezi dvěma stránkami.

3 minuty

Snažíme-li se webovou stránku vytvářet s ohledem na krásu (s využitím animací a různých plynulých přechodů), může působit přechod mezi dvěma stránkami lehce rušivě. Zvlášť potom u komplikovanějších layoutů lze pozorovat nepěkné probliknutí, než si prohlížeč přechroupe HTML, CSS a JavaScript.

První možnost, jak se tomuto vyhnout, je použít AJAX a veškerý obsah načítat asynchronně.

To díky history.pushState sice jde řešit i s používáním normálních URL, ale stránka se stává náchylnější k chybám, kdy drobná chyba v JS může znefunkčnit celou navigaci na webu. Klasický přechod mezi stránkami je vlastně takový restart všech skriptů.

Kromě toho je zajaxování webu relativně pracné.

Skrytí a zobrazení animací

Plynulý přechod mezi stránkami

Řešením proto může být:

  1. Použití skrývací animace před opuštěním stránky.
  2. Použití zobrazovací animace na začátku načtení stránky.

Potřebnou animaci stačí vytvořit pomocí @keyframes a přiřadit ji do vlastnosti animation). Zpětný průchod animací zajistí klíčové slovo reverse.

Objevovací animace se spustí při načtení stránky.

Animace zmizení bude vyvolána po kliknutí na odkaz mířící pryč. Získat všechny odkazy na stránce jde z document.links. Nabízelo by se možná použít událost onbeforeunload, nicméně nejspíš ji nejde rozumně časovat, takže by nešlo garantovat přehrání ukončovací animace.

Živá ukázka

Odkazy jinam

Co si myslíte o tomto článku?

Diskuse

Související články

CSS item-pack: balance – vyvážené rozložení flex položek

Vlastnost item-pack: balance rozděluje flex položky rovnoměrně mezi řádky, podobně jako text-wrap: balance vyvažuje řádky textu.

11 minut

CSS Container Queries – responsivní komponenty

Jak pomocí @container, container-type a container-name vytvářet komponenty, které se přizpůsobí velikosti svého rodiče místo viewportu.

16 minut

CSS Anchor Positioning – posicování elementů relativně k jiným

Jak pomocí anchor-name, position-anchor a funkce anchor() posicovat elementy relativně k jiným bez JavaScriptu.

6 minut

Centrování na webových stránkách

Moderní způsoby vertikálního i horizontálního centrování v CSS. Flexbox, Grid, margin auto a další techniky.

8 minut

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 · Zkratky
2013–2026