Moderní tvorba webových aplikací

O webu

Barva podle odrolování na stránce

Jak pouze v CSS měnit pozadí elementu v závislosti na odscrollování na stránce.

3 minuty

Poměrně zajímavý efekt mají zprávy ve Facebook Messengeru:

Gradient na pozadí ve FB Messengeru

V závislosti na umístění ve viewportu mají různou barvu. Tentýž element je dole červený a nahoře modrý. Během rolování mění svoji barvu.

Je až skoro překvapivé, jak jednoduché je takový efekt vyrobit. Stačí k tomu pouhé 2 vlastnosti:

  1. obrázkové pozadí s barevným přechodem – lze vytvořit přímo v CSS pomocí gradientu: background-image: linear-gradient(#0D6AB7, #DA3F94)
  2. fixní obrázkové pozadí – obrázkový gradient se zafixuje pomocí background-attachment: fixed

Jako obrázek samozřejmě nemusí posloužit pouze CSS gradient, ale může jít o obrázek libovolný.

Samostatná živá ukázka

Využití

Kromě již zmíněných zpráv na Facebooku se podobný efekt může hodit pro zvýraznění čehokoliv během scrollování.

Ukázka zvýraznění nadpisů při příjezdu elementu do viewportu.

Řešení v JavaScriptu

V JS jde zjistit počet pixelů, o které je odrolováno, a podle toho s barvou libovolně manipulovat.

CSS řešení je ale podstatně jednodušší.

Výkon

V dávných dobách bývaly s v CSS fixovaným pozadím přes background-attachment: fixed značné výkonnostní problémy:

Na pomalejších počítačích (CPU pod 400, záleží hlavně na grafické kartě) způsobuje hodnota fixed pomalejší rolování, protože se to musí přepočítávat.

Yuhů, Background-attachment na JPW

Dnes už to takový problém není. Nicméně fakt, že se plocha s obrázkovým fixním pozadím musí neustále přepočítávat (překreslovat), platí stále. Je dobré si to při používání podobných efektů uvědomit.

Související články

Vložení CSS do stránky

Jakými všemi způsoby připojit CSS do stránky.

9 minut

Jak „focusovat“ správně díky :focus-visible

Jak správně řešit označený (:focus) stav formulářových prvků.

4 minuty

Poskakování obsahu akčních tlačítek

Jak vyřešit problém s poskakováním obsahu, když se změní textace nebo tučnost tlačítka.

9 minut

Má smysl měnit kursor tlačítek?

Tlačítka mají na webu po najetí jiný kursor než odkazy.

4 minuty

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