Przejścia CSS i keyframes: 20 przykładów do skopiowania

Plac zabaw z przejściami CSS

Przejścia CSS i keyframes: 20 przykładów na żywo | We.Inc

Ustaw czas trwania, opóźnienie i easing suwakami, zobacz narysowaną krzywą cubic-bezier, porównaj przejścia z @keyframes i skopiuj 20 mikrointerakcji hover, które respektują ograniczenie ruchu.

Przejście CSS (transition) płynnie animuje właściwość, gdy zmienia się jej wartość, na przykład przy najechaniu kursorem: transition: transform 200ms ease-out. Wymaga stanu początkowego i końcowego i uruchamia się raz przy każdej zmianie. Animacje @keyframes definiują własne kroki, mogą się zapętlać i startują bez żadnej zmiany stanu. Animuj transform i opacity, aby uzyskać najpłynniejsze efekty.

transition, część po części

Plac zabaw animuje prawdziwy element między dwoma stanami z wybraną przez Ciebie właściwością, czasem trwania, opóźnieniem i easingiem, a easing rysuje jako krzywą, abyś zobaczył, dlaczego ease-out wydaje się żwawy, a ease-in ospały. Niżej znajdziesz dwadzieścia efektów hover i focus, które możesz edytować na żywo i wkleić na dowolną stronę.

Najczęściej zadawane pytania

Jaka jest różnica między przejściem a animacją?

Przejście reaguje na zmianę wartości, na przykład dodanie klasy lub rozpoczęcie hover, i przechodzi tylko od starej wartości do nowej. Animacja używa @keyframes, może mieć wiele kroków, powtarzać się lub zmieniać kierunek i startuje, gdy tylko zostanie zastosowana. Używaj przejść do zmian stanu, a keyframes do loaderów i elementów przyciągających uwagę.

Dlaczego moje przejście się nie uruchamia?

Częste przyczyny: właściwości nie da się animować (display nie dało się, aż do allow-discrete), wartość początkowa to auto (height: auto nie da się interpolować bez nowszych funkcji), element został właśnie wstawiony, więc nie ma poprzedniego stylu, albo przejście zadeklarowano tylko w stanie hover, więc po zjechaniu kursorem element gwałtownie wraca.

Które właściwości tanio się animuje?

transform i opacity zwykle obsługuje kompozytor bez przeliczania układu i ponownego malowania, więc pozostają płynne. Animowanie width, height, top, left lub margin wymusza przeliczenie układu w każdej klatce, a box-shadow lub filter powodują ponowne malowanie, co może się zacinać na wolniejszych telefonach.

Co oznacza cubic-bezier?

Opisuje krzywą easingu za pomocą dwóch punktów kontrolnych, cubic-bezier(x1, y1, x2, y2). Wartości x to czas i muszą mieścić się między 0 a 1; wartości y to postęp i mogą wychodzić poza ten zakres, co tworzy przestrzelenie lub lekkie odbicie.

Jak respektować ograniczenie ruchu?

Użyj media query @media (prefers-reduced-motion: reduce), aby skrócić lub usunąć ruch. Prostym podejściem jest zachowanie zmian koloru i przezroczystości, ale rezygnacja z transformacji, albo ustawienie w tym zapytaniu transition-duration i animation-duration na bardzo małą wartość.

Jak czytać krzywą easingu

Przejście czy @keyframes?

Animowanie do i z display: none

Przejście a @keyframes w skrócie

Kiedy czego używać

Ile kosztuje animowanie każdej właściwości

Praca renderowania na klatkę (ogólna zasada, zależy od przeglądarki)

Siatka bezpieczeństwa dla ograniczonego ruchu

Zachowuje zmiany stanu, ale usuwa przemieszczenie. Umieść ją pod koniec arkusza stylów.

Płynne pojawianie się i znikanie popovera z @starting-style

Ulepszenie dla przeglądarek obsługujących allow-discrete i @starting-style. Pozostałe pokazują i ukrywają element natychmiast.

20 mikrointerakcji do skopiowania

Najedź kursorem lub ustaw focus na każdym wyniku, aby zobaczyć efekt. Każdy fragment kończy się regułą dla ograniczonego ruchu.

Uniesienie karty

Unosi kartę i pogłębia jej cień.

Powiększenie przycisku

Lekkie powiększenie przy hover i wciśnięcie przy kliknięciu.

Wysuwane podkreślenie

Linia rośnie od lewej dzięki rozmiarowi tła.

Wypełnienie kolorem

Kolory tła i tekstu zamieniają się jednocześnie.

Przesunięcie strzałki

Ikona się przesuwa, a etykieta stoi w miejscu.

Obrót ikony

Plus zamienia się w krzyżyk.

Płynny pierścień focusu

Przesunięcie obrysu animuje się dla użytkowników klawiatury.

Zoom obrazu w ramce

Obraz się powiększa, ale ramka go przycina.

Odsłonięcie podpisu

Podpis wysuwa się w górę od dolnej krawędzi.

Delikatna poświata

Pojawia się kolorowy cień.

Subtelne przechylenie

Kilka stopni obrotu sprawia, że naklejka wygląda swobodnie.

Rysowanie obramowania

Kolor obramowania zmienia się z szarego na niebieski marki.

Przyciemnienie pozostałych

Najechanie na jeden element wygasza jego sąsiadów.

Przebłysk światła

Jasny pas przesuwa się po elemencie przy hover.

Suwak przełącznika

Checkbox ostylowany jako przełącznik z przesuwanym suwakiem.

Strzałka akordeonu

Znacznik obraca się, gdy element details się otwiera.

Pulsująca kropka (keyframes)

Zapętlona kropka statusu zbudowana z @keyframes.

Spinner (keyframes)

Liniowe tempo utrzymuje równomierny obrót.

Pojawienie się od dołu przy wczytaniu (keyframes)

fill-mode both ukrywa element podczas opóźnienia.

Potrząśnięcie przy błędzie (keyframes)

Krótkie poziome potrząśnięcie, które tutaj odtwarza się raz przy hover.

Krzywa easingu cubic-bezier({values})

Plac zabaw z przejściami

Odtwórz do przodu

Odtwórz wstecz

Twoje urządzenie prosi o ograniczenie ruchu, więc podgląd przeskakuje zamiast się przesuwać.

Właściwość do animowania

Czas trwania: {n}ms

Opóźnienie: {n}ms

Presety easingu

Kopiuj CSS

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony