Generator animacji CSS
Pisanie @keyframes od zera jest żmudne: wybierasz procenty, zgadujesz właściwości, odświeżasz, obserwujesz, poprawiasz. Ten generator daje sześć gotowych animacji (zanikanie, wysuwanie w górę, odbicie, obrót, pulsowanie i wstrząs) i pozwala ustawić nazwę animacji, czas trwania, easing, liczbę powtórzeń i kierunek. Wynik odtwarza się w czasie rzeczywistym, a gdy jesteś zadowolony, możesz skopiować wygenerowany blok @keyframes i skróconą właściwość animation.
Jak zbudować animację CSS
-
1
Wybierz preset
Wybierz jedną z sześciu wbudowanych animacji: zanikanie, wysuwanie w górę, odbicie, obrót, pulsowanie lub wstrząs.
-
2
Nazwij animację
Nadaj keyframes prawidłowy identyfikator CSS, na przykład `cardIn` lub `fadeIn`. Ta sama nazwa jest używana w skróconej właściwości `animation`.
-
3
Ustaw czas i powtarzanie
Czas trwania w sekundach, easing (ease, ease-in, ease-out, ease-in-out, linear lub spring), liczba powtórzeń (1, 2, 3 lub infinite) i kierunek (normal, reverse, alternate lub alternate-reverse).
-
4
Skopiuj CSS
Wygenerowana reguła `@keyframes` i skrócona notacja `animation:` gotowe do wklejenia do arkusza stylów.
Anatomia animacji
@keyframes slide-in {
0% { transform: translateX(-100%); opacity: 0; }
60% { transform: translateX(10%); opacity: 1; }
100% { transform: translateX(0); opacity: 1; }
}
.card {
animation: slide-in 400ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
Osiem właściwości w notacji skróconej: animation-name duration timing-function delay iteration-count direction fill-mode play-state.
Wybór easingów
Generator oferuje sześć funkcji easing:
| Easing | cubic-bezier() | Odczucie |
|---|---|---|
| linear | n/d | Stała prędkość |
| ease-in | 0.42, 0, 1, 1 |
Wolny start, szybkie zakończenie |
| ease-out | 0, 0, 0.58, 1 |
Szybki start, wolne zakończenie |
| ease-in-out | 0.42, 0, 0.58, 1 |
Wolno-szybko-wolno |
| ease (domyślny) | 0.25, 0.1, 0.25, 1 |
Delikatny domyślny |
| spring | 0.68, -0.55, 0.27, 1.55 |
Przestrzeliwuje i stabilizuje się |
Animuj właściwe właściwości
Przeglądarka może animować dowolną właściwość, ale tylko kilka z nich działa płynnie na GPU bez wywoływania layoutu lub malowania:
Tanie (tylko kompozycja): transform, opacity, filter.
Kosztowne (layout/malowanie): width, height, top, left, margin, padding, background-color.
Animacje z sześćdziesięcioma klatkami na sekundę na width i top są możliwe na małych elementach, ale na telefonie się zaczną przy dużej liczbie jednocześnie animowanych. Przy złożonym ruchu zawsze preferuj transform: translate(...) zamiast top / left oraz transform: scale(...) zamiast animowanej szerokości/wysokości.
will-change: używaj oszczędnie
Poinformowanie przeglądarki o wcześniejszym przydzieleniu warstwy kompozycji może poprawić płynność:
.card { will-change: transform; }
Ale to zużywa pamięć. Stosuj to tuż przed wyzwoleniem animacji i usuwaj po jej zakończeniu. Stałe ustawianie will-change: transform na wielu elementach może przynieść więcej szkody niż pożytku.
Ograniczenie ruchu
Niektórzy użytkownicy są wrażliwi na ruch i ustawiają preferencje systemowe:
@media (prefers-reduced-motion: reduce) {
.card {
animation: none;
}
}
Szanuj to ustawienie. Zaproponuj natychmiastową zmianę stanu lub bardzo subtelne zanikanie jako zamiennik.
Najczęściej zadawane pytania
CSS do prostego, deklaratywnego, jednorazowego ruchu. Web Animations API (element.animate()) do sterowania czasem z JavaScriptu, dynamicznych keyframes, pauzy i kontroli odtwarzania. Obie działają na kompozytorze; żadna nie jest z natury szybsza.
Prawie zawsze dlatego, że animujesz właściwość wywołującą layout (width, top, margin) zamiast transform. Przejdź na translate() i scale(), a przycięcia zwykle znikną.
Tak, animation: a 1s, b 1s 1s, c 1s 2s; uruchamia trzy animacje sekwencyjnie dzięki przesuniętym opóźnieniom. Ten generator produkuje jedną animację, więc dodatkowe wpisy dodaj sam w notacji skróconej. Do bardziej złożonej choreografii użyj Web Animations API lub biblioteki takiej jak GSAP.
Sprawia, że element przyjmuje stan from przed rozpoczęciem animacji (podczas opóźnienia) i utrzymuje stan to po jej zakończeniu. Bez both element wraca do stylu sprzed animacji po jej zakończeniu. Generator trzyma notację minimalną, więc w razie potrzeby dodaj fill mode samodzielnie.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator losowych liter
Generuj losowe litery A-Z. Wybierz liczbę, wielkie litery, małe litery lub zapis mieszany i użyj wyniku w grach, zadaniach lub lekcjach.
Konwerter ASCII na binarny
Konwertuj dowolny ciąg ASCII na reprezentację binarną. Każdy znak staje się ośmioma bitami, rozdzielonymi spacjami, gotowymi do wklejenia w ślad protokołu albo zadanie domowe.
Próbnik kolorów HEX
Wybierz lub wpisz kolor HEX i sprawdź RGB, HSL, przybliżone CMYK, luminancję względną oraz kontrast z bielą i czernią.