Vytvořte animované pozadí pomocí HTML a CSS

Vložení animovaného pozadí na vaše webové stránky nebo do aplikace může přinést neotřelý a poutavý vzhled. Nápadité pozadí dokáže vyvolat pocity a zpříjemnit uživatelský zážitek.

Existuje mnoho metod, jak vytvořit animované pozadí pro vaši aplikaci, ale obzvláště efektivní je jednoduchá kombinace HTML a CSS. Podívejte se na tento příklad, pochopte princip jeho kódu a prohlédněte si živou ukázku výsledného animovaného pozadí.

Vytvoření HTML struktury

Vytvoříme modré pozadí s bublinami, které se zvětšují a stoupají vzhůru. Konečný výsledek si můžete prohlédnout na tomto Codepen.

Začněte vytvořením sekce s třídou „wrapper“, která bude obsahovat animaci.

Následně vytvořte 10 div prvků, které budou reprezentovat bubliny. Uvnitř každého div prvku vytvořte span s třídou „dot“. Pokud s HTML teprve začínáte, můžete se tyto základní značky HTML naučit během 10 minut.

 <body>
    <section class="wrapper">
        <h2>Animované pozadí</h2>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
        <div><span class="dot"></span></div>
    </section>
</body>

Stylizace pomocí CSS kódu

Úžasných efektů na pozadí můžete dosáhnout i pouhým HTML. Nicméně pro tento projekt využijeme CSS k nastavení stylu a animaci pozadí.

Nejprve nastavte okraj (margin) a vnitřní odsazení (padding) na 0, aby okolo pozadí nebyly žádné mezery.

 * {
  margin: 0;
  padding: 0;
}

Následně upravte styl nadřazené sekce pomocí třídy „wrapper“. Tato sekce bude mít 100% šířku a výšku, aby vyplnila celou stránku. Nastavte barvu pozadí na odstín modré a přidejte absolutní pozici.

 .wrapper {
  height: 100%;
  width: 100%;
  background-color: #0066cc;
  position: absolute;
}

Stylizujte také h2 prvek s absolutní pozicí. Chcete-li jej umístit do středu stránky, začněte nastavením jeho levé horní pozice na 50 %. Poté jej pomocí „transform: translate“ posuňte nahoru a doleva, aby se jeho střed nacházel přesně uprostřed.

 .wrapper h2 {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
  font-family: sans-serif;
  word-spacing: 2px;
  color: #fff;
  font-size: 2rem;
  font-weight: 900;
}

Dále upravte styl div prvků, které budou kruhové, aby fungovaly jako animované bubliny. Každému div prvku přiřaďte výšku, šířku a ohraničení. Velký poloměr okraje zajistí, že okraj bude kruhový. Také nastavte dobu trvání animace pomocí vlastnosti CSS „animation“.

 .wrapper div {
    height: 60px;
    width: 60px;
    border: 2px solid rgba(255, 255, 255, 0.7);
    border-radius: 100px;
    position: absolute;
    top: 10%;
    left: 10%;
    animation: 4s linear infinite;
}

Stylizujte tečky s výškou a šířkou 5 pixelů. Dejte tečkám poloměr ohraničení a bílé pozadí. Každou z nich umístěte absolutně blízko pravého horního rohu jejího nadřazeného div prvku.

 div .dot {
    height: 5px;
    width: 5px;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.5);
    position: absolute;
    top: 20%;
    right: 20%;
}

Následně použijte selektor „nth-child“ k umístění každého div prvku s různým nastavením. Animaci můžete pojmenovat „animate“; později ji definujete pomocí „@keyframes“.

Pro adresování prvního div prvku použijte „nth-child(2)“, protože prvním potomkem prvku „.wrapper“ je h2.

 .wrapper div:nth-child(2) {
    top: 20%;
    left: 20%;
    animation: animate 8s linear infinite;
}

.wrapper div:nth-child(3) {
    top: 60%;
    left: 80%;
    animation: animate 10s linear infinite;
}

.wrapper div:nth-child(4) {
    top: 40%;
    left: 40%;
    animation: animate 3s linear infinite;
}

.wrapper div:nth-child(5) {
    top: 66%;
    left: 30%;
    animation: animate 7s linear infinite;
}

.wrapper div:nth-child(6) {
    top: 90%;
    left: 10%;
    animation: animate 9s linear infinite;
}

Nižším divům můžete přiřadit vyšší procenta, aby stoupaly nahoru v různých intervalech.

 .wrapper div:nth-child(7) {
    top: 30%;
    left: 60%;
    animation: animate 5s linear infinite;
}

.wrapper div:nth-child(8) {
    top: 70%;
    left: 20%;
    animation: animate 8s linear infinite;
}

.wrapper div:nth-child(9) {
    top: 75%;
    left: 60%;
    animation: animate 10s linear infinite;
}

.wrapper div:nth-child(10) {
    top: 50%;
    left: 50%;
    animation: animate 6s linear infinite;
}

.wrapper div:nth-child(11) {
    top: 45%;
    left: 20%;
    animation: animate 10s linear infinite;
}

Pomocí „@keyframes“ můžete postupně měnit a otáčet kruhy a tečky v různých intervalech. V následujícím kódu se tečky otáčejí o 70 stupňů a kruhy o 360. Toto otáčení vytváří efekt bublin.

 @keyframes animate {
    0% {
        transform: scale(0) translateY(0) rotate(70deg);
    }
    100% {
        transform: scale(1.3) translateY(-100px) rotate(360deg);
    }
}

Pozadí můžete vylepšit pomocí CSS vzorů. Vzory vám umožňují vytvářet vlny, mřížky, listy a další motivy, které vám pomohou vytvářet fascinující animace.

Pomocí CSS lze animovat mnoho vlastností

S pomocí CSS můžete vytvářet různé typy animací. Mezi ně patří změna barvy pozadí a zpoždění spuštění animace.

Můžete také nastavit, jak často se má animace spouštět, dokonce až do nekonečna. Dále můžete nastavit směr, kterým se má animace pohybovat: dopředu nebo dozadu. Je zábavné experimentovat s animacemi a můžete je použít k oživení aplikací.