Łapka LogoŁapka Infa
🌐
INF.03

Przejścia i Animacje

Tchnij życie w swoją stronę internetową. Jak stworzyć płynne podświetlanie po najechaniu myszą (hover).

Przejścia (Transitions) i Animacje

Na nowszych arkuszach INF.03 (szczególnie w erze odejścia od jQuery na rzecz czystego JS i CSS) CKE wymaga znajomości ożywiania elementów (np. podświetlające się paski menu).

Przejścia (transition)

Gdy bez animacji najeżdżasz na element:

button { background-color: blue; }
button:hover { background-color: red; }

Przycisk zmieni się na czerwony natychmiast, w ułamku sekundy. Aby uczynić to płynnym (przyjemnym dla oka), używamy transition.

button {
    background-color: blue;
    /* Magiczna funkcja, opóźnia i płynnie przelicza klatki: */
    transition: background-color 0.5s ease-in-out;
}

Pułapka CKE 🪤: Czasem CKE nakazuje "Dodaj płynne przejście podczas najechania myszką trwające 1 sekundę". Regułę transition dodajemy ZAWSZE do elementu w stanie pierwotnym (czyli do .button), a nie do .button:hover! Gdy dodasz do hover, animacja zadziała przy najechaniu, ale "urwie się" bezpowrotnie przy zjechaniu kursorem!

Transformacje (transform)

Przejściami możemy zmienić płynnie każdy "prosty" wymiar i kolor (szerokość, margines, tło). Ale żeby obrócić zdjęcie, lub powiększyć je (nie psując reszty układu strony), używamy transform.

  • transform: scale(1.2); – Powiększa element do 120%.
  • transform: rotate(45deg); – Obraca element o 45 stopni w prawo.
  • transform: translate(20px, 50px); – Przesuwa element o 20px w prawo i 50px w dół (wizualnie, ale w HTML traktuje go tak, jakby stał w oryginalnym miejscu!).
.zdjecie {
    transition: transform 0.3s;
}
.zdjecie:hover {
    transform: scale(1.1) rotate(5deg); /* Powiększa się i lekko obraca */
}

Animacje Kluczowe (@keyframes)

Jeśli potrzebujesz czegoś, co będzie pulsować nieustannie (nawet jak nikt nie najeżdża myszką), potrzebujesz keyframes. Wyobraź sobie montowanie filmu na osi czasu:

/* Tworzymy oś czasu o nazwie 'puls' */
@keyframes puls {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); } /* W połowie czasu powiększ */
    100% { transform: scale(1); }  /* Wróć do stanu domyślnego */
}

/* Przypinamy ją do obiektu */
.reklama {
    /* nazwa, czas trwania, zachowanie na końcu, nieskończoność powtórzeń */
    animation: puls 2s ease-in-out infinite; 
}

Animacje i przejścia pokazują sprawdzającemu egzaminatorowi, że doskonale operujesz frontendem. Jeśli w arkuszu widzisz wytyczne o efektach wizualnych – wiesz, co robić!