Were anya nke a: ị sonyere n'ọrụ ọhụrụ, banye na codebase, na n'ime awa ole na ole mbụ, ị ga-achọpụta ihe na-akụda mmụọ maara nke ọma. Gbasasịrị n'ime ụdị ụdị ọ bụla, ị na-ahụ ọtụtụ nkọwa @keyframes maka otu animation bụ isi. Mmetụta atọ dị iche iche na-adapụ, ọdịiche abụọ ma ọ bụ atọ slide, ntakịrị ihe ngosi mbugharị, yana opekata mpe ihe ngosi abụọ dị iche iche n'ihi na, ọ dị mma, gịnị kpatara na? @keyframes pulse { si { ọnụ ọgụgụ: 1; } na { ọnụ ọgụgụ: 1.1; } }

@keyframes nnukwu usu { 0%, 20%, 100% { ọnụ ọgụgụ: 1; } 10%, 40% { ọnụ ọgụgụ: 1.2; } }

Ọ bụrụ na ọnọdụ a mara nke ọma, ọ bụghị naanị gị. Na ahụmahụ m n'ofe ọrụ dị iche iche, otu n'ime mmeri ọsọ ọsọ m nwere ike ịnapụta bụ ịkwado na ịhazi igodo igodo. Ọ bụrụla ụkpụrụ a pụrụ ịdabere na ya nke na m na-atụ anya nchacha a dị ka otu n'ime ọrụ mbụ m na koodu koodu ọhụrụ ọ bụla. Echiche dị n'azụ ọgba aghara ahụ Nke a redundancy na-eme ka uche zuru oke mgbe ị na-eche banyere ya. Anyị niile na-eji otu ihe ngosi dị mkpa na-arụ ọrụ anyị kwa ụbọchị: na-ada, slides, mbugharị, ntugharị na mmetụta ndị ọzọ. Ihe ngosi ndị a kwụ ọtọ, ọ dịkwa mfe ịpịa nkọwa ngwa ngwa @keyframes iji rụchaa ọrụ ahụ. Na-enweghị usoro animation nke etiti, ndị mmepe na-edepụta igodo ndị a site na ọkọ, na-amaghị na ihe nkiri yiri ya adịlarị n'ebe ọzọ na codebase. Nke a bụ ihe a na-ahụkarị mgbe ị na-arụ ọrụ n'ime ụlọ ndị dabere na akụrụngwa (nke ọtụtụ n'ime anyị na-eme ụbọchị ndị a), dịka ndị otu na-arụkarị ọrụ n'otu akụkụ n'akụkụ dị iche iche nke ngwa ahụ. Nsonazụ ahụ? Ọgba aghara animation. Obere Nsogbu Okwu kacha pụta ìhè na mpịaji igodo mkpirisi bụ igbu oge mmepe yana bloat koodu na-enweghị isi. Nkọwa ọtụtụ igodo pụtara ọtụtụ ebe imelite mgbe ihe ndị achọrọ gbanwere. Ịchọrọ ịhazi oge nke ihe nkiri fade gị? Ị ga-achọ ịchụ nta ọ bụla n'ofe codebase gị. Ịchọrọ ịhazi ọrụ dị mfe? Jisie ike ịchọta ọdịiche niile. Nke a na-amụba nke mmezi ihe na-eme ka ọbụna mfe animation mmelite ọrụ na-ewe oge. Nsogbu ka ukwuu Mpịakọta igodo a na-emepụta nsogbu dị egwu karịa nke na-ezo n'okpuru: ọnyà zuru ụwa ọnụ. Ọbụlagodi mgbe ị na-arụ ọrụ na ihe owuwu dabere na akụrụngwa, a na-akọwapụta igodo igodo CSS n'ogo zuru ụwa ọnụ. Nke a pụtara na igodo igodo niile na-emetụta akụkụ niile. Mgbe niile. Ee, animation gị agaghị eji igodo igodo ndị ị kọwapụtara na mpaghara gị. Ọ na-eji igodo igodo ikpeazụ dabara n'otu aha ahụ nke etinyere na mpaghara ụwa. Ọ bụrụhaala na isi igodo gị niile bụ otu, nke a nwere ike ịdị ka obere okwu. Mana oge ịchọrọ ịhazi animation maka otu ihe eji eme ihe, ị nọ na nsogbu, ma ọ bụ nke ka njọ, ị ga-abụ onye na-akpata ha. Ma ọ bụ ihe nkiri gị agaghị arụ ọrụ n'ihi na akụrụngwa ọzọ eburula nke gị, na-edegharị igodo gị, ma ọ bụ ihe akụrụngwa gị ga-adịgide wee gbanwee omume animation maka akụrụngwa ọ bụla na-eji aha igodo ahụ, ma ị nwere ike ọ gaghị aghọta ya. Nke a bụ ọmụmaatụ dị mfe nke gosipụtara nsogbu ahụ: .akụkụ-otu { /* ụdị akụrụngwa */ animation: pulse 1s mfe-in-out enweghi ngwụcha ọzọ; }

/* nkọwa @keyframes a agaghị arụ ọrụ */ @keyframes pulse { si { ọnụ ọgụgụ: 1; } na { ọnụ ọgụgụ: 1.1; } }

/* emesia na koodu...*/

.akụkụ-abụọ { /* ụdị akụrụngwa */ animation: pulse 1s mfe-in-out enweghi ngwụcha; }

/* igodo a ga-emetụta akụkụ abụọ ahụ */ @keyframes pulse { 0%, 20%, 100% { ọnụ ọgụgụ: 1; } 10%, 40% { ọnụ ọgụgụ: 1.2; } }

Akụkụ abụọ a na-eji otu aha animation, mana nkọwa @keyframes nke abụọ na-edegharị nke mbụ. Ugbu a ma akụrụngwa-otu na akụkụ-abụọ ga-eji igodo nke abụọ, n'agbanyeghị mpaghara akọwapụtara nke igodo. Hụ akara mkpịsị ugodi mkpịsị ugodi Pen - Demo 1 nke Amit Sheen mere. Nke kacha njọ? Nke a na-arụkarị ọrụ nke ọma na mmepe mpaghara mana ọ na-agbaji nke ọma na mmepụta mgbe usoro nrụpụta na-agbanwe usoro nbudata nke mpempe akwụkwọ gị. Ị na-ejedebe na animations na-akpa àgwà dị iche iche dabere na nke akụrụngwa na-ejuru na kedu usoro. Ngwọta: Igwe igodo ejikọtara ọnụ Azịza nye ọgbaaghara a dị nfe n'ụzọ dị mfe: kọwapụta mkpisi igodo siri ike echekwara na mpempe akwụkwọ nkekọrịta. Kama ikwe ka akụrụngwa ọ bụla kọwapụta animation nke ya, anyị na-ekepụta isi igodo nke etinyere nke ọma, dị mfe iji.iji, kwado ya, na ahaziri ya maka mkpa nke ọrụ gị. Chee ya dị ka akara igodo igodo. Dị nnọọ ka anyị na-eji tokens maka agba na spacing, na ọtụtụ n'ime anyị na-ejiworị tokens maka animation Njirimara, dị ka oge na easing ọrụ, gịnị kpatara na-eji tokens maka keyframes nakwa? Usoro a nwere ike ijikọ n'ụzọ nkịtị na usoro ọrụ akara ngosi ọ bụla ugbu a ị na-eji, ebe ọ na-edozi ma obere nsogbu (mbigharị koodu) yana nsogbu buru ibu (esemokwu ụwa) n'otu oge. Echiche a kwụ ọtọ: mepụta otu isi iyi nke eziokwu maka ihe nkiri anyị niile. Mpempe akwụkwọ a na-ekekọrịta nwere ọmarịcha igodo ejiri nlezianya mee nke na-ekpuchi usoro animation nke ọrụ anyị na-eji n'ezie. Enweghịzị ịkọ nkọ ma animation adịlarị ebe na codebase anyị. Ọ dịghị ọzọ na-edegharị ihe nkiri na mberede site na ihe ndị ọzọ. Mana nke a bụ isi ihe: ndị a abụghị naanị ihe ngosi nnomi oyiri-paste static. Emebere ha ka ọ bụrụ ihe siri ike na ịhazi ya site na njirimara omenala CSS, na-enye anyị ohere ịnọgide na-enwe nguzozi ka anyị ka nwere ike ịgbanwe animation ka ọ bụrụ ihe eji eme ihe, dị ka ọ bụrụ na ịchọrọ ihe nkiri “ụkụ” ka ukwuu n'otu ebe. Iwulite Token igodo mbụ Otu n'ime mkpụrụ osisi ndị dị ala nke mbụ anyị kwesịrị ịlụso ọgụ bụ ihe nkiri “na-adaba n'ime”. N'ime otu n'ime ọrụ m na nso nso a, ahụrụ m ihe karịrị iri na abuo dị iche iche nkọwa na-ada ada, na ee, ha niile na-eme ka opacity ahụ dị site na 0 ruo 1. Yabụ, ka anyị mepụta ụdị ụdị ọhụrụ, kpọọ ya kf-tokens.css, bubata ya na ọrụ anyị, ma tinye igodo anyị na nkọwa kwesịrị ekwesị n'ime ya. /* keyframes-tokens.css */

/* * Gbanyụọ Na - agbanyụọ ihe nkiri mbata * Ojiji: animation: kf-fade-in 0.3s mfe-out; */ @keyframes kf-fade-in { si { oghere: 0; } na { oghere: 1; } }

Nkwupụta otu @keyframes a na-anọchi anya ihe nkiri gbasasịrị agbasasị n'ofe codebase anyị. Ọ dị ọcha, dị mfe, yana ọdabara zuru ụwa ọnụ. Ma ugbu a anyị nwere nkọwapụta akara ngosi a, anyị nwere ike iji ya site na mpaghara ọ bụla n'oge ọrụ anyị niile: .modal { animation: kf-fade-na 0.3s mfe-apụ; }

.tooltip { animation: kf-fade-na 0.2s mfe-in-out; }

. ngosi { animation: kf-fade-na 0.5s mfe-apụ; }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 2 nke Amit Sheen mere. Mara: Anyị na-eji kf-prefix na aha @keyframes anyị niile. Nke a prefix na-eje ozi dị ka a namespace na-egbochi ịkpọ aha esemokwu na ẹdude animations na oru ngo na-eme ka ọ pụta ozugbo na ndị keyframes si anyị keyframes token faịlụ. Ime ihe mmịfe dị omimi Igwe igodo kf-fade-in na-arụ ọrụ nke ukwuu n'ihi na ọ dị mfe yana enwere obere ohere iji mebie ihe. N'ihe ngosi ndị ọzọ, agbanyeghị, anyị kwesịrị ịdị ike karịa, ebe a anyị nwere ike itinye nnukwu ike nke akụrụngwa omenala CSS. Nke a bụ ebe akara igodo igodo na-enwu n'ezie ma e jiri ya tụnyere ihe nkiri kwụsasịa gbasasịrị. Ka anyị were ọnọdụ a na-ahụkarị: ihe ngosi “slide-in”. Mana si ebee banye? 100px si n'aka nri? 50% si n'aka ekpe? O kwesịrị isi n'elu ihuenyo bata? Ma ọ bụ ikekwe sere n'elu si na ala? Ọtụtụ ohere, mana kama ịmepụta igodo igodo dị iche iche maka ntụziaka ọ bụla na mgbanwe ọ bụla, anyị nwere ike ịmepụta otu akara ngosi na-agbanwe agbanwe nke dabara na ọnọdụ niile: /* * Gbanye n'ime - animation slide ntụzịaka * Jiri --kf-slide-site na njikwa ntụzịaka * Ihe ndabara: slide sitere n'aka ekpe (-100%) * Ojiji: * animation: kf-slide-in 0.3s mfe-out; * --kf-slide-si: -100px 0; // slide si n'aka ekpe * --kf-slide-si: 100px 0; // slide si n'aka nri * --kf-slide-si: 0 -50px; // slide si n'elu */

@keyframes kf-slide-na { si { ntụgharị: var (--kf-slide-site, -100% 0); } na { ntụgharị: 0 0; } }

Ugbu a, anyị nwere ike iji otu @keyframes token maka ntụzịaka mmịfe ọ bụla naanị site n'ịgbanwe --kf-slide-from ihe onwunwe omenala: . sidebar { animation: kf-slide-in 0.3s mfe-out; /* Na-eji uru ndabara: slides si n'aka ekpe */ }

. ngosi { animation: kf-slide-in 0.4s mfe-out; --kf-slide-si: 0 -50px; /* slide si n'elu */ }

.modal { animation: kf-fade-na 0.5s, kf-slide-na 0.5s cubic-bezier (0.34, 1.56, 0.64, 1); --kf-slide-si: 50px 50px; /* slide si n'ala-aka nri */ }

Ụzọ a na-enye anyị mgbanwe dị egwu ka anyị na-anọgide na-agbanwe agbanwe. Otu nkwupụta igodo igodo, ohere enweghị ngwụcha. Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 3 nke Amit Sheen mere. Ma ọ bụrụ na anyị chọrọ ime ka animation anyị dịkwuo mgbanwe, na-enye ohere maka mmetụta "slide-out", anyị nwere ike.naanị tinye --kf-slide-na akụrụngwa ahaziri ahazi, dịka ihe anyị ga-ahụ na ngalaba na-esote. Igodo mbugharị akụkụ abụọ Ihe ngosi ọzọ a na-ahụkarị nke a na-emegharị n'ofe ọrụ bụ mmetụta "mbugharị". Ma ọ bụ ọkwa dị nro maka ozi toast, mbugharị dị egwu maka modal, ma ọ bụ mmetụta dị nro na-agbada maka isiokwu, ihe ngosi mbugharị dị ebe niile. Kama ịmepụta igodo igodo dị iche iche maka ọnụ ahịa ọnụ ọgụgụ ọ bụla, ka anyị wuo otu isi igodo kf-zoom na-agbanwe agbanwe:

/* * Mbugharị - ihe ngosi nha * Jiri --kf-zoom-site na --kf-zoom-iji jikwaa ụkpụrụ ọnụ ọgụgụ * Ihe ndabara: mbugharị site na 80% ruo 100% (0.8 ruo 1) * Ojiji: * animation: kf-mbugharị 0.2s mfe-apụ; * --kf-mbugharị-si: 0,5; --kf-mbugharị-na: 1; // mbugharị site na 50% ruo 100% * --kf-mbugharị-si: 1; --kf-mbugharị-na: 0; // mbugharị site na 100% ruo 0% * --kf-mbugharị-si: 1; --kf-mbugharị-na: 1.1; // mbugharị site na 100% ruo 110% */

@keyframes kf-zoom { si { ọnụ ọgụgụ: var (--kf-zoom-si, 0.8); } na { ọnụ ọgụgụ: var (--kf-zoom-to, 1); } }

Site na otu nkọwa, anyị nwere ike nweta mgbanwe mbugharị ọ bụla anyị chọrọ: .toast { animation: kf-slide-na 0.2s, kf-mbugharị 0.4s mfe-apụ; --kf-slide-si: 0 100%; /* slide si n'elu */ /* Na-eji mbugharị ndabara: akpịrịkpa sitere na 80% ruo 100% */ }

.modal { animation: kf-zoom 0.3s cubic-bezier (0.34, 1.56, 0.64, 1); --kf-mbugharị-si: 0; /* mbugharị dị egwu site na 0% ruo 100% */ }

.n'isi { animation: kf-fade-na 2s, kf-mbugharị 2s mfe-na; --kf-mbugharị-si: 1.2; --kf-mbugharị-na: 0,8; /* nwayọọ nwayọọ gbadaa */ }

Ndabara nke 0.8 (80%) na-arụ ọrụ nke ọma maka ọtụtụ ihe UI, dị ka ozi toast na kaadị, ebe ọ ka dị mfe ịhazi maka ikpe pụrụ iche. Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 4 nke Amit Sheen mere. O nwere ike ịbụ na ị chọpụtala ihe na-atọ ụtọ n'ihe atụ ndị na-adịbeghị anya: anyị na-ejikọta ihe nkiri. Otu uru dị mkpa nke iji akara @keyframes na-arụ ọrụ bụ na e mere ha ka ha na ibe ha na-akpakọrịta. Ngwakọta a dị nro bụ ụma, ọ bụghị na mberede. Anyị ga-atụle ihe mejupụtara animation n'ụzọ zuru ezu ma emechaa, gụnyere ebe ha nwere ike bụrụ nsogbu, mana ọtụtụ nchikota dị mfe ma dị mfe itinye. Mara: Mgbe m na-ede akụkọ a, ma eleghị anya, n'ihi ide ya, ahụrụ m onwe m ka m na-atụgharị uche n'echiche niile nke ihe ngosi mbata. Site na ọganihu niile na CSS na nso nso a, anyị ka chọrọ ha ma ọlị? N'ụzọ dị mma, Adam Argyle nyochara otu ajụjụ ahụ wee kwupụta ha nke ọma na blọọgụ ya. Nke a anaghị emegide ihe edere ebe a, mana ọ na-enye usoro kwesịrị ịtụle, ọkachasị ma ọ bụrụ na ọrụ gị dabere na ihe ngosi mbata. Ihe ngosi na-aga n'ihu Mgbe ihe ngosi mbata, dị ka “ịdalata”, “slide”, na “mbugharị” na-eme otu ugboro wee kwụsị, ihe ngosi na-aga n'ihu na-akụ aka ruo mgbe ebighị ebi iji dọta uche ma ọ bụ gosi ọrụ na-aga n'ihu. Ihe ngosi abụọ a na-ahụkarị na-aga n'ihu m na-ezute bụ “spin” (maka ihe ngosi nbudata) na “pulse” (maka ịkọwapụta ihe ndị dị mkpa). Ihe ngosi ndị a na-eweta ihe ịma aka pụrụ iche ma a bịa n'ịmepụta akara igodo. N'adịghị ka ihe ngosi mbata nke na-esikarị n'otu steeti gaa na nke ọzọ, animation na-aga n'ihu kwesịrị ịbụ nke a na-ahazi nke ọma na ụkpụrụ omume ha. The Spin Doctor Ihe oru ngo ọ bụla dị ka ọ na-eji ọtụtụ ihe nkiri atụ egwu. Ụfọdụ na-atụgharị n'akụkụ elekere, ndị ọzọ na-atụgharị na elekere. Ụfọdụ na-eme otu ntụgharị ogo 360, ndị ọzọ na-eme ọtụtụ ntụgharị maka mmetụta ọsọ ọsọ. Kama ịmepụta igodo igodo dị iche iche maka mgbanwe ọ bụla, ka anyị wulite otu ntụgharị na-agbanwe agbanwe nke na-ejikwa ọnọdụ niile:

/* * Ntugharị - ntụgharị animation * Jiri --kf-spin-site na --kf-spin-iji chịkwaa oke ntụgharị * Jiri --kf-spin-atụgharị iji jikwaa ego ngbanwe * Ihe ndabara: na-atụgharị site na 0deg ruo 360deg (1 ntụgharị zuru ezu) * Ojiji: * animation: kf-spin 1s linear enweghi ngwụcha; * --kf-ntụgharị-atụgharị: 2; // 2 ntụgharị zuru ezu * --kf-spin-si: 0deg; --kf-spin-na: 180deg; // ọkara ntụgharị * --kf-spin-si: 0deg; --kf-spin-na: -360deg; // counterclockwise */

@keyframes kf-spin { si { bugharia: var (--kf-spin-from, 0deg); } na { bugharia: calc (var (--kf-spin-from, 0deg) + var (--kf-spin-to, 360deg) * var (--kf-spin-turns, 1)); } }

Ugbu a, anyị nwere ike ịmepụta mgbanwe ọ bụla na-amasị anyị:

.ngwunye-ọkpụkpụ { animation: kf-spin 1s linear enweghi ngwụcha; /* Na-eji ndabara: na-atụgharị site na 0deg ruo 360deg */ }

.ngwa ngwa ngwa { animation: kf-spin 1.2s mfe-in-out enweghi ngwụcha ọzọ; --kf-spin-atụgharị: 3; / * 3 ntụgharị zuru oke maka ntụziaka ọ bụla kwa okirikiri*/ }

.steetere-atụgharị { animation: kf-spin 1.5s nzọụkwụ (8) enweghi ngwụcha; --kf-spin-na: -360deg; /* na-atụgharị elekere */ }

.sutle-wiggle { animation: kf-spin 2s mfe-in-out enweghi ngwụcha ọzọ; --kf-spin-si: -16deg; --kf-spin-na: 32deg; /* wiggle 36 deg: n'etiti -18deg na +18deg */ }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 5 nke Amit Sheen mere. Mma nke ụzọ a bụ na otu igodo igodo ahụ na-arụ ọrụ maka ịkwanye spinners, akara ngosi na-atụgharị, mmetụta na-emegharị anya, na ọbụna mgbagwoju anya multi-atụgharị. Paradox nke Pulse Animations Pulse dị aghụghọ karịa n'ihi na ha nwere ike "akụ" ihe dị iche iche. Ụfọdụ na-akụ ihe ọ̀tụ̀tụ̀, ndị ọzọ na-akụda opacity ahụ, yana ụfọdụ àgwà agba agba dị ka nchapụta ma ọ bụ saturation. Kama ịmepụta igodo igodo dị iche iche maka akụrụngwa ọ bụla, anyị nwere ike ịmepụta igodo ndị na-arụ ọrụ na akụrụngwa CSS ọ bụla. Nke a bụ ọmụmaatụ nke igodo pulse nwere oke na nhọrọ enweghị ohere:

/* * Pulse - ihe nkiri na-akụda mmụọ * Jiri --kf-pulse-scale-site na --kf-pulse-scale-iji chịkwaa oke nha. * Jiri --kf-pulse-opacity-site na --kf-pulse-opacity-iji chịkwaa oke opacity * Ihe ndabara: enweghị pulse (ụkpụrụ niile 1) * Ojiji: * animation: kf-pulse 2s mfe-in-out enweghi ngwụcha ọzọ; * --kf-pulse-ọnụ ọgụgụ-si: 0.95; --kf-ụba-ọnụọgụgụ-na: 1.05; // ọnụ ọgụgụ pulse * --kf-pulse-opacity-site na: 0,7; --kf-pulse-opacity-na: 1; // opacity usu */

@keyframes kf-pulse { si { ọnụ ọgụgụ: var (--kf-pulse-scale-site, 1); opacity: var (--kf-pulse-opacity-site, 1); } na { ọnụ ọgụgụ: var (--kf-pulse-scale-to, 1); opacity: var (--kf-pulse-opacity-to, 1); } }

Nke a na-emepụta pulse na-agbanwe agbanwe nke nwere ike ịme ọtụtụ ihe: .kpọ oku ka emee { animation: kf-pulse 0.6s enweghị ngwụcha ọzọ; --kf-pulse-opacity-site na: 0,5; /* opacity usu */ }

. ngosi-ntụpọ { animation: kf-pulse 0.6s mfe-in-out enweghi ngwụcha ọzọ; --kf-pulse-ọnụ ọgụgụ-si: 0.9; --kf-ụba-ọnụọgụgụ-na: 1.1; /* ọnụ ọgụgụ pulse */ }

.text-highlight { animation: kf-pulse 1.5s mfe-esi enweghi ngwụcha; --kf-pulse-ọnụ ọgụgụ-si: 0,8; --kf-pulse-opacity-site na: 0.2; /* ọnụ ọgụgụ na opacity usu */ }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 6 nke Amit Sheen mere. Otu igodo kf-pulse a nwere ike ijikwa ihe niile site na nlebara anya dị nro ruo na ihe ngosi dị egwu, na-adị mfe ịhazi ya. Advanced Easing Otu n'ime nnukwu ihe gbasara iji keyframes tokens bụ ka ọ dị mfe ịgbasa ọba akwụkwọ animation anyị ma nye mmetụta nke ọtụtụ ndị mmepe agaghị enwe nsogbu ide site na ọkọ, dị ka na-agbanwe ma ọ bụ bounce. Nke a bụ ihe atụ nke akara igodo “bounce” dị mfe nke na-eji --kf-bounce-site na akụrụngwa omenala iji jikwaa elu elu. /* * Bounce - bouncing n'ọnụ ụzọ animation * Jiri --kf-bounce-si na njikwa elu elu * Ihe ndabara: na-awụpụ site na 100vh (gbanyụọ ihuenyo) * Ojiji: * animation: kf-bounce 3s mfe-in; * --kf-bounce-site na: 200px; // si n'ịdị elu 200px wulie elu */

@keyframes kf-bounce { 0% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -1); }

34% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.4); }

55% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.2); }

72% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.1); }

85% ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.05); }

94% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.025); }

99% { ntụgharị: 0 calc (var (-kf-bounce-site, 100vh) * -0.0125); }

22%, 45%, 64%, 79%, 90%, 97%, 100% { ntụgharị: 0 0; animation-oge-ọrụ: mfe-apụ; } }

Ihe ngosi dị ka "elastic" dị ntakịrị aghụghọ n'ihi ngụkọ dị n'ime igodo igodo. Anyị kwesịrị ịkọwa --kf-elastic-from-X na --kf-elastic-from-Y iche iche (ha abụọ bụ nhọrọ), na ọnụ ha na-ahapụ anyị ka anyị mepụta ọnụ ụzọ na-agbanwe site n'ebe ọ bụla na ihuenyo.

/* * Elastic In - ihe na-agbanwe agbanwe Jiri --kf-elastic-from-X na --kf-elastic-site-Y iji jikwaa ọnọdụ mmalite * Ihe ndabara: si n'elu etiti abanye (0, -100vh) * Ojiji: * animation: kf-elastic-na 2s mfe na-apụ ma; * --kf-elastic-site-X: -50px; * --kf-elastic-site na-Y: -200px; // tinye site na (-50px, -200px) */

@keyframes kf-elastic-na { 0% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * 1) calc (var (--kf-elastic-from-Y, 0px) * 1); }

16% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * -0.3227) calc (var (-kf-elastic-from-Y, 0px) * -0.3227); }

28% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * 0.1312)calc (var (--kf-elastic-site-Y, 0px) * 0.1312); }

44% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * -0.0463) calc (var (-kf-elastic-from-Y, 0px) * -0.0463); }

59% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * 0.0164) calc (var (-kf-elastic-from-Y, 0px) * 0.0164); }

73% { ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * -0.0058) calc (var (-kf-elastic-from-Y, 0px) * -0.0058); }

88% ntụgharị: calc (var (--kf-elastic-from-X, -50vw) * 0.0020) calc (var (-kf-elastic-from-Y, 0px) * 0.0020); }

100% { ntụgharị: 0 0; } }

Ụzọ a na-eme ka ọ dị mfe ijigharị na hazie igodo igodo dị elu n'ofe ọrụ anyị, naanị site n'ịgbanwe otu ihe onwunwe omenala.

.bounce-na-mbugharị { animation: kf-bounce 3s mfe ịbanye, kf-zoom 3s linear; --kf-mbugharị-si: 0; }

.bounce-and-slide { animation-nhazi: tinye; /* Ihe onyonyo abụọ a na-eji ntụgharị asụsụ */ animation: kf-bounce 3s mfe ịbanye, kf-slide-na 3s mfe-apụ; --kf-slide-si: -200px; }

.elastic-na { animation: kf-elastic-na 2s mfe na-apụ ma; }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 7 nke Amit Sheen mere. Ruo n'oge a, anyị ahụla ka anyị nwere ike isi mee ka igodo igodo n'ụzọ dị mma na nke ọma. N'ezie, ị nwere ike ịchọrọ ịmegharị ihe ka ọ dabara na mkpa ọrụ gị, mana anyị ekpuchila ihe atụ nke ọtụtụ ihe nkiri na-emekarị na ihe eji eme ihe kwa ụbọchị. N'iji akara igodo ndị a nọ n'ọnọdụ, anyị nwere ugbu a ihe mgbochi ụlọ dị ike maka ịmepụta ihe ngosi na-agbanwe agbanwe, nke a na-echekwa n'ofe ọrụ ahụ dum. Enweghị isi igodo oyiri ọzọ, enweghị esemokwu zuru ụwa ọnụ ọzọ. Naanị ụzọ dị ọcha, dịkwa mma iji dozie mkpa animation anyị niile. Ma ajụjụ bụ́ eziokwu bụ: Olee otú anyị ga-esi chịkọta ihe ndị a na-ewu ụlọ ọnụ? Ijikọta ya niile Anyị ahụla na ijikọta akara igodo igodo dị mfe. Anyị achọghị ihe ọ bụla pụrụ iche ma ọ bụghị ịkọwa ihe nkiri mbụ, kọwaa nke abụọ, dozie mgbanwe dị ka ọ dị mkpa, ọ bụkwa ya. /* Gbanye na + slide na */ .toast { animation: kf-fade-na 0.4s, kf-slide-na 0.4s cubic-bezier (0.34, 1.56, 0.64, 1); --kf-slide-si: 0 40px; }

/* Bugharịa + gbadaa na */ .modal { animation: kf-fade-na 0.3s, kf-zoom 0.3s cubic-bezier (0.34, 1.56, 0.64, 1); --kf-mbugharị-si: 0,7; --kf-mbugharị-na: 1; }

/* Sịgharịa na + pulse */ . ngosi { animation: kf-slide-na 0.5s, kf-pulse 1.2s dị mfe na-enweghị njedebe ọzọ; --kf-slide-si: -100px 0; --kf-pulse-ọnụ ọgụgụ-si: 0.95; --kf-ụba-ọnụọgụgụ-na: 1.05; }

Ngwakọta ndị a na-arụ ọrụ mara mma n'ihi na animation ọ bụla na-elekwasị anya ihe onwunwe dị iche iche: opacity, mgbanwe (nsụgharị / ọnụ ọgụgụ), wdg. Ma mgbe ụfọdụ enwere esemokwu, anyị kwesịrị ịma ihe kpatara na otu esi emeso ha. Mgbe ihe ngosi abụọ na-agbalị ịmegharị otu ihe - dịka ọmụmaatụ, ma nha nha ma ọ bụ ihe ngosi nke abụọ - nsonaazụ agaghị abụ ihe ị tụrụ anya ya. Site na ndabara, naanị otu n'ime animation ka etinyere na akụrụngwa ahụ, nke bụ nke ikpeazụ na ndepụta eserese. Nke a bụ mmachi ka CSS si ejikwa ọtụtụ animation n'otu akụrụngwa. Dịka ọmụmaatụ, nke a agaghị arụ ọrụ dịka echere n'ihi na ọ bụ naanị kf-pulse animation ga-etinye. .combo ọjọọ { animation: kf-mbugharị 0.5s n'ihu, kf-pulse 1.2s enweghị ngwụcha ọzọ; --kf-mbugharị-si: 0,5; --kf-mbugharị-na: 1.2; --kf-pulse-ọnụ ọgụgụ-si: 0,8; --kf-ụba-ọnụọgụgụ-na: 1.1; }

Mgbakwunye animation Ụzọ kachasị mfe na nke kachasị kpọmkwem iji jikwaa ọtụtụ ihe ngosi na-emetụta otu ihe bụ iji ihe eji eme ihe animation. N'ihe atụ ikpeazụ nke dị n'elu, kf-pulse animation na-edochi animation kf-zoom, yabụ anyị agaghị ahụ mbugharị mbụ na anyị agaghị enweta ọkwa a tụrụ anya na nke 1.2. Site n'itinye animation-nhazi iji gbakwunye, anyị na-agwa ihe nchọgharị ka ọ jikọta ihe nkiri abụọ ahụ. Nke a na-enye anyị nsonaazụ anyị chọrọ. .akụkụ-abụọ { animation-nhazi: tinye; }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 8 nke Amit Sheen mere. Usoro a na-arụ ọrụ nke ọma maka ọtụtụ ikpe ebe anyị chọrọ ijikọta mmetụta na otu ihe onwunwe. Ọ dịkwa uru mgbe anyị kwesịrị ijikọ animations na ụkpụrụ ihe onwunwe static. Dịka ọmụmaatụ, ọ bụrụ na anyị nwere mmewere nke na-eji akụrụngwa ntụgharị tinye ya kpọmkwem ebe anyị chọrọ, mgbe ahụ anyị chọrọ iji mkpịsị ugodi kf-slide-na mee ya, anyị na-enweta mwụli elu a na-ahụ anya na-enweghị ihe nkiri. Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 9 nke Amit Sheen mere. Na animation-nhazi ka agbakwunyere, a na-ejikọta animation na nke dị adịmgbanwe, ya mere mmewere na-anọ ebe na animates dị ka a tụrụ anya ya. Anụmanụ Stagger Ụzọ ọzọ a na-esi ejikwa ọtụtụ animation bụ iji 'ịkpagharị' ha - ya bụ, malite ihe ngosi nke abụọ ntakịrị ka nke mbụ mechara. Ọ bụghị ihe ngwọta nke na-arụ ọrụ maka ikpe ọ bụla, mana ọ bara uru mgbe anyị nwere ihe ngosi mbata na-esote animation na-aga n'ihu. /* daa na + opacity pulse */ . ngosi { animation: kf-fade-na 2s dị mfe, kf-pulse 0.5s 2s dị mfe na-apụta enweghị ngwụcha ọzọ; --kf-pulse-opacity-na: 0,5; }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 10 nke Amit Sheen mere. Usoro ihe Akụkụ buru ibu nke ihe nkiri anyị na-arụ ọrụ na-eji ihe ngbanwe. N'ọtụtụ ọnọdụ, nke a dị mfe karịa. Ọ nwekwara uru arụmọrụ dị ka mgbanwe animations nwere ike ibuwanye ngwa ngwa GPU. Ma ọ bụrụ na anyị ejiri mgbanwe mee ihe, anyị kwesịrị ịnakwere na usoro anyị si eme mgbanwe anyị dị mkpa. Ọtụtụ. N'ime igodo anyị ruo ugbu a, anyị ejirila mgbanwe n'otu n'otu. Dịka nkọwapụta ahụ siri dị, a na-etinye ihe ndị a n'usoro edobere: nke mbụ, a na-atụgharị ihe ahụ, wee tụgharịa, wee mee nha. Nke a nwere ezi uche ma bụrụ ihe ọtụtụ n'ime anyị na-atụ anya ya. Otú ọ dị, ọ bụrụ na anyị na-eji ihe ngbanwe ahụ eme ihe, usoro nke edere ọrụ ndị ahụ bụ usoro nke etinyere ya. N'okwu a, ọ bụrụ na anyị na-ebugharị ihe 100 pikselụ na X-axis wee tụgharịa ya site na 45 degrees, ọ bụghị otu ihe ahụ dị ka mbụ na-atụgharị ya site na 45 degrees wee na-ebugharị ya 100 pikselụ. /* Square pink: Tụgharịa asụsụ mbụ, wee tụgharịa */ .ihe atụ-otu { mgbanwe: translateX (100px) bugharia (45deg); }

/* Akwụkwọ ndụ akwụkwọ ndụ: buru ụzọ tụgharịa, wee tụgharịa asụsụ */ .ihe atụ-abụọ { mgbanwe: tụgharịa (45deg) translateX(100px); }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 11 nke Amit Sheen mere. Mana dị ka usoro mgbanwe si dị, onye ọ bụla na-agbanwe - ihe niile anyị ji mee ihe maka akara igodo - na-eme tupu ọrụ mgbanwe. Nke ahụ pụtara na ihe ọ bụla ị debere na ihe onwunwe mgbanwe ga-eme mgbe ihe nkiri ahụ gasịrị. Mana ọ bụrụ n'ịtọọ, dịka ọmụmaatụ, tụgharịa asụsụ ya na mkpịsị igodo kf-spin, ntụgharị asụsụ ahụ ga-eme tupu eserese ahụ. Ọ gbagwojuru anya?! Nke a na-eduga n'ọnọdụ ebe ụkpụrụ static nwere ike ibute nsonaazụ dị iche iche maka otu animation, dị ka n'ọnọdụ a:

/* Anụmanụ a na-ahụkarị maka ndị na-agbagharị abụọ */ .spiner { animation: kf-spin 1s linear enweghi ngwụcha; }

/* Pink spinner: tụgharịa tupu tụgharịa (mgbanwe onye ọ bụla) */ .spinner-pink { ntụgharị: 100% 50%; }

/* Green spinner: tụgharịa wee tụgharịa (usoro ọrụ) */ .spinner-acha akwụkwọ ndụ akwụkwọ ndụ mgbanwe: ntụgharị (100%, 50%); }

Hụ akara mkpịsị ugodi mkpịsị ugodi - ngosi 12 nke Amit Sheen mere. Ị nwere ike ịhụ na onye nke mbụ (pink) na-enweta ntụgharị nke na-eme tupu ntụgharị nke kf-spin, ya mere ọ na-ebu ụzọ gaa ebe ya wee tụgharịa. Nke abụọ spinner (akwụkwọ ndụ akwụkwọ ndụ) na-enweta ọrụ ntụgharị () nke na-eme mgbe onye ọ bụla gbanwee, ya mere mmewere ahụ na-ebu ụzọ na-atụgharị, wee na-agagharị n'akụkụ akụkụ ya dị ugbu a, anyị na-enwetakwa mmetụta ahụ buru ibu. Mba, nke a abụghị ahụhụ. Ọ bụ naanị otu n'ime ihe ndị anyị kwesịrị ịma gbasara CSS ma buru n'uche mgbe ị na-arụ ọrụ na ọtụtụ animation ma ọ bụ ọtụtụ mgbanwe. Ọ bụrụ na ọ dị mkpa, ị nwekwara ike ịmepụta ihe mgbakwunye igodo kf-spin-alt na-atụgharị ihe site na iji ọrụ ntụgharị (). Mbelata Mgbanwe Ma ka anyị na-ekwu maka igodo igodo ọzọ, anyị enweghị ike ileghara nhọrọ "enweghị animation". Otu n'ime nnukwu uru dị n'iji akara igodo igodo bụ na enwere ike ime ohere ịnweta, yana ọ dịkwa mfe ime. Site n'ichepụta isi igodo anyị n'uche, anyị nwere ike hụ na ndị ọrụ na-ahọrọ mbelata mmegharị ahụ na-enweta ahụmịhe dị nro, nke na-adọpụ uche karịa, na-enweghị mgbakwunye ọrụ ma ọ bụ koodu oyiri. Ihe pụtara “Reduced Motion” nwere ike ịgbanwe ntakịrị site na otu animation gaa na nke ọzọ, yana site na oru ngo gaa n'ọrụ, mana ebe a bụ isi ihe ole na ole dị mkpa ị ga-eburu n'uche: Na-emechi igodo igodo Ọ bụ ezie na ụfọdụ ihe ngosi nwere ike ime ka ọ dị nro ma ọ bụ kwụsịlata, enwere ndị ọzọ kwesịrị ịla n'iyi kpamkpam mgbe achọrọ mbelata mmegharị. Ihe nkiri Pulse bụ ezigbo ihe atụ. Iji jide n'aka na ihe ngosi ndị a anaghị agba ọsọ na ọnọdụ ngagharị ewelata, anyị nwere ike kechie ha na ajụjụ mgbasa ozi dabara adaba.

@media (na-ahọrọ-reduced-motion: enweghị mmasị) { @keyfrmaes kf-pulse { si { ọnụ ọgụgụ: var (--kf-pulse-scale-site, 1); opacity: var (--kf-pulse-opacity-site, 1); } na { ọnụ ọgụgụ: var (--kf-pulse-scale-to, 1); opacity:var (--kf-pulse-opacity-to, 1); } } }

Nke a na-achọpụta na ndị ọrụ setịpụrụ prefers-reduced-motion iji belata agaghị ahụ animation ma ga-enweta ahụmịhe dabara na mmasị ha. Ngwa ngwa Enwere ụfọdụ igodo anyị enweghị ike iwepụ naanị, dị ka ihe ngosi mbata. Uru ga-agbanwe, ga-eme ka ọ dị ndụ; ma ọ bụghị ya, mmewere agaghị enwe ụkpụrụ ziri ezi. Mana na mmegharị mbelata, mgbanwe a site na uru mbụ kwesịrị ịbụ ozugbo. Iji mezuo nke a, anyị ga-akọwapụta ihe mgbakwunye igodo igodo ebe ọnụ ahịa na-amali ozugbo na steeti njedebe. Ndị a ga-abụ isi igodo anyị nke ndabara. Mgbe ahụ, anyị ga-agbakwunye igodo igodo oge niile n'ime ajụjụ mgbasa ozi maka mbelata-obere ngagharị ka edobere na enweghị mmasị, dịka n'atụmatụ gara aga. /* gbapụta ozugbo maka mbelata mmegharị */ @keyframes kf-zoom { site na, ruo { ọnụ ọgụgụ: var (--kf-zoom-to, 1); } }

@media (na-ahọrọ-reduced-motion: enweghị mmasị) { /* Igodo mbugharị izizi */ @keyframes kf-zoom { si { ọnụ ọgụgụ: var (--kf-zoom-si, 0.8); } na { ọnụ ọgụgụ: var (--kf-zoom-to, 1); } } }

N'ụzọ dị otú a, ndị ọrụ na-ahọrọ mbelata ngagharị ga-ahụ mmewere na-apụta ozugbo na njedebe ikpeazụ ya, ebe onye ọ bụla ọzọ na-enweta mgbanwe animated. Ụzọ dị nro Enwere ikpe ebe anyị chọrọ idowe ụfọdụ mmegharị, mana dị nro na nwayọ karịa ihe ngosi izizi. Dịka ọmụmaatụ, anyị nwere ike iji nwayọọ nwayọọ dochie ọnụ ụzọ bounce.

@keyframes kf-bounce { /* Ntugharị dị nro maka mmegharị mbelata */ }

@media (na-ahọrọ-reduced-motion: enweghị mmasị) { @keyframes kf-bounce { /* Igwe igodo mgbaba mbụ */ } }

Ugbu a, ndị ọrụ nwere obere mmegharị ahụ ka na-enwe mmetụta nke ọdịdị, mana na-enweghị oke mmegharị nke bounce ma ọ bụ ihe na-agbanwe agbanwe. N'ịbụ ndị a na-ewu ụlọ, ajụjụ na-esote bụ otu esi eme ka ha bụrụ akụkụ nke usoro ọrụ ahụ n'ezie. Ide ederede igodo na-agbanwe agbanwe bụ otu ihe, mana ime ka ha bụrụ ndị a pụrụ ịdabere na ya n'ofe nnukwu ọrụ chọrọ atụmatụ ole na ole m ga-amụta n'ụzọ siri ike. Atụmatụ mmejuputa & Omume kacha mma Ozugbo anyị nwere ọbá akwụkwọ siri ike nke akara igodo, ezigbo ihe ịma aka bụ otu esi ewebata ha n'ọrụ kwa ụbọchị.

Ọnwụnwa bụ ịtụba igodo igodo niile n'otu oge wee kwupụta na edoziziri nsogbu ahụ, mana na omume achọpụtara m na nsonaazụ kacha mma sitere na nkuchi nwayọ nwayọ. Malite na ihe nkiri ndị a na-ahụkarị, dị ka fade ma ọ bụ slide. Ndị a bụ mmeri dị mfe nke na-egosi uru ozugbo na-achọghị nnukwu rewrites. Ịkpọ aha bụ isi ihe ọzọ kwesịrị nlebara anya. Prefix na-agbanwe agbanwe ma ọ bụ oghere aha na-eme ka ọ pụta ìhè nke animation bụ akara ngosi yana nke bụ otu nkwụsị mpaghara. Ọ na-egbochi ndakpọ mberede ma na-enyere ndị otu ọhụrụ aka ịmata usoro nkekọrịta na ilele. Akwụkwọ dị mkpa dị ka koodu n'onwe ya. Ọbụna obere okwu dị n'elu akara igodo ọ bụla nwere ike ịchekwa awa nke ịkọ nkọ ma emechaa. Onye nrụpụta kwesịrị inwe ike imepe faịlụ tokens, nyocha maka mmetụta ha chọrọ, ma detuo ụkpụrụ ojiji ozugbo n'ime akụrụngwa ha. Mgbanwe bụ ihe na-eme ka ụzọ a kwesị mgbalị siri ike. Site n'ikpughe njirimara omenala ndị nwere ezi uche, anyị na-enye ndị otu ohere imegharị ihe nkiri na-emebighị usoro ahụ. N'otu oge ahụ, gbalịa ka ị ghara imebiga ihe ókè. Nye mkpịsị aka ndị dị mkpa ma mee ka ndị ọzọ nwee echiche. N'ikpeazụ, cheta ohere. Ọ bụghị animation ọ bụla chọrọ usoro mmegharị ahụ belatara, mana ọtụtụ na-eme ya. Ime na mgbanwe ndị a n'oge pụtara na ọ dịghị mgbe anyị ga-emegharị ha ma emechaa, ọ na-egosikwa ọkwa nlekọta nke ndị ọrụ anyị ga-achọpụta ọ bụrụgodị na ha ekwughị ya.

N'ahụmahụ m, ịgwọ akara mkpịsị ugodi dị ka akụkụ nke usoro nrụpụta ihe ngosi anyị bụ ihe na-eme ka ha rapara. Ozugbo ha nọ n'ọnọdụ, ha na-akwụsị inwe mmetụta dị ka mmetụta pụrụ iche wee ghọọ akụkụ nke asụsụ imewe, ndọtị sitere n'okike nke ka ngwaahịa ahụ si emegharị na nzaghachi. Na-achịkọta Anụmanụ nwere ike ịbụ otu n'ime akụkụ kacha nwee ọ joyụ nke ihu ụlọ, mana enweghị usoro, ha nwekwara ike bụrụ otu n'ime isi mmalite nke nkụda mmụọ. Site n'imeso igodo igodo dị ka akara ngosi, ị na-ewere ihe na-adịkarị njọ ma sie ike ijikwa wee gbanwee ya ka ọ bụrụ usoro doro anya, nke a na-ahụ anya. Ezigbo uru abụghị naanị ịchekwa ahịrị koodu ole na ole. Ọ bụ na ntụkwasị obi na mgbe ị na-eji fade, slide, mbugharị, ma ọ bụ atụtuo, ị maara nke ọma ka ọ ga-esi eme n'ofe ọrụ ahụ. Ọ bụ na mgbanwe nke na-abịa site na omenala omenala na-enweghị ọgba aghara nke ọdịiche na-adịghị agwụ agwụ. Ma ọ bụ na nnweta wuru n'ime ntọala kama ịgbakwunye dị kaechiche emechaa. Ahụla m echiche ndị a na-arụ ọrụ na otu dị iche iche na codebases dị iche iche, na ụkpụrụ bụ mgbe niile. Ozugbo akara ngosi ahụ dị, igodo igodo kwụsịrị ịbụ mkpokọta aghụghọ gbasasịrị wee bụrụ akụkụ nke asụsụ nhazi. Ha na-eme ka ngwaahịa ahụ nwee mmetụta nke ebumnobi, na-agbanwe agbanwe, yana ndụ. Ọ bụrụ na ị were otu ihe n'isiokwu a, ka ọ bụrụ nke a: ihe ngosi kwesịrị otu nlekọta na nhazi ahụ anyị na-enyerịrị agba, akwụkwọ edemede na oghere. Obere itinye ego na akara igodo igodo na-akwụ ụgwọ oge ọ bụla interface gị na-aga.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free