Animacije na web stranici: kada pomažu, a kada usporavaju

Animacije mogu učiniti vašu stranicu živom ili sporom. Evo kako ih koristiti pametno, kada ih preskočiti i koji je stvarni trošak performansi.

Dobro postavljena animacija daje web stranici dojam uglađenosti. Loše postavljena čini je sličnom PowerPoint prezentaciji iz 2004. Razlika nije u tome koristite li animacije. Nego kako, gdje i zašto.

Raščlanimo kada animacije zaista poboljšavaju stranicu, kada joj aktivno štete i kako ih implementirati bez uništavanja brzine učitavanja.

Kada animacije zaista pomažu

Nisu sve animacije jednake. Dobre dijele zajedničku crtu: služe svrsi koja nadilazi puki izgled.

Povratna informacija i potvrda

Kada korisnik klikne gumb i on se suptilno utisne, to je korisna animacija. Kada se forma pošalje i pojavi se kvačica, to je korisna animacija. Te mikrointerakcije govore korisnicima "vaša akcija je registrirana." Bez njih, ljudi kliknu dvaput, zbune se ili odu.

Gumb koji pri prelasku mišem mijenja boju za 200 ms. Spinner tijekom učitavanja podataka. Toast notifikacija koja sklizne s boka. Te animacije rješavaju stvarne UX probleme.

Usmjeravanje pozornosti

Animacija je moćan alat za usmjeravanje oka tamo gdje treba ići. Suptilno pulsiranje gumba za poziv na akciju privlači pažnju bez vikanja. Indikator napretka tijekom višekoračne forme pokazuje korisnicima gdje se nalaze i koliko im je preostalo.

Animacije aktivirane scrollom koje otkrivaju dijelove sadržaja mogu duge stranice učiniti strukturiranijima i promišljenijima umjesto zastrašujućima. Ključna riječ je "otkriti." Sadržaj bi se trebao pojaviti prirodno, a ne uletjeti s lijeve strane kao da kasni na sastanak.

Objašnjavanje složenih ideja

Animirani dijagrami, vizualni vodiči korak po korak, interaktivne vizualizacije podataka. Kada trebate objasniti nešto komplicirano, animacija može postići ono što statične slike ne mogu. Kalkulator cijena koji glatko ažurira ukupne iznose dok korisnici pomiču klizače komunicira responsivnost i točnost.

Branding i osobnost

Prilagođena animacija učitavanja, animirani logo, suptilni parallax efekt na hero sekciji. Sve to govori posjetiteljima da vaš brand posvećuje pažnju detaljima. Apple, Stripe i Linear svi koriste animaciju kao dio identiteta svog branda. Funkcionira jer je namjerna i dosljedna.

Kada animacije štete vašoj stranici

Ovdje većina stranica griješi.

Porez na performanse

Svaka animacija nešto košta. CSS prijelazi su jeftini. JavaScript animacije su skupe. Lottie datoteke i video pozadine su vrlo skupe.

Evo što se događa iza scene: preglednik mora ponovo iscrtati i rekomponirati elemente svaki frame. Animacije koje aktiviraju prekalkulaciju layouta (mijenjanje širine, visine, margina, paddinga) posebno su skupe. Prisiljavaju preglednik da ponovo izračuna poziciju svega na stranici.

Sigurna svojstva za animiranje: transform i opacity. Njima upravlja GPU i ne aktiviraju prekalkulaciju layouta. Držite se ovih kad god je moguće.

Dvije trake preko tri faze rada preglednika označene LAYOUT, PAINT i COMPOSITE. Traka za width, height, top, left, margin i padding počinje na LAYOUT i prolazi kroz sve tri. Traka za transform i opacity počinje na COMPOSITE i pokriva jednu.
Zašto se dva popisa razlikuju, i nije stvar ukusa. Animirani kadar plaća svaku fazu u koju njegovo svojstvo ponovno ulazi, pa gornji redak košta tri puta više od donjeg, i to šezdeset puta u sekundi.Otvori sliku u punoj veličini

Skupa svojstva za animiranje: width, height, top, left, margin, padding. Aktiviraju reflow layouta i mogu uništiti frame rate, posebno na mobilnim uređajima.

Stranica s teškim animacijama koja se vrti na 30 fps na Android telefonu srednje klase pala je test performansi. Većina vaših korisnika ne pregledava na MacBook Pro-u.

Problem distrakcije

Kada se sve kreće, ništa se ne ističe. Stranice koje animiraju svaku sekciju pri scrollu, odbijaju svaki gumb i dodaju parallax svakoj pozadinskoj slici, iscrpljujuće su za korištenje. Korisnikovo oko ne zna gdje gledati, a važan sadržaj se gubi u spektaklu.

Animacija bi trebala biti sol, ne glavno jelo. Začinite pažljivo.

Trošak pristupačnosti

Otprilike 5% opće populacije ima osjetljivost na pokret. Za te korisnike, pretjerana animacija može izazvati vrtoglavicu, mučninu ili glavobolju. Ovo nije teorijska briga. To je pravi problem pristupačnosti s pravim tehničkim rješenjem.

Media query prefers-reduced-motion omogućuje otkrivanje korisnika koji su u postavkama operativnog sustava zatražili manje pokreta. Poštovanje ove preferencije nije opcionalno ako vam je stalo do korisničkog iskustva.

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

Ovo je grubi pristup. Još bolje, osmislite iskustvo sa smanjenim pokretom namjerno. Možda fade-inovi postanu trenutna otkrivanja. Možda parallax postane statičan. Sadržaj mora biti potpuno dostupan u oba slučaja.

Trošak učitavanja

Biblioteke za animacije dodaju težinu. GreenSock (GSAP) jezgra je oko 72 KB minificirano (otprilike 24 KB gzippirano). Lottie web player je otprilike 334 KB (84 KB gzippirano), iako lagane alternative poput jLottie dolaze na oko 15 KB gzippirano. Framer Motion za React kreće od oko 34 KB za motion komponentu, a LazyMotion to može smanjiti na ispod 5 KB za početni render. To se akumulira, posebno u kombinaciji sa svime ostalim što vaša stranica učitava.

A tu su i sami resursi animacija. Lottie JSON datoteka lako može biti 100 KB+. Video pozadina može biti nekoliko megabajta. Svaki kilobajt je vrijeme koje vaš korisnik čeka prije nego vidi sadržaj.

Praktične smjernice

Evo okvira za odlučivanje:

Koristite animaciju kada:

  • Pruža povratnu informaciju na korisnikove akcije
  • Usmjerava pažnju na važne elemente
  • Objašnjava nešto što je teško pokazati statično
  • Dosljedno pojačava identitet branda

Preskočite animaciju kada:

  • Čisto je dekorativna bez funkcionalne svrhe
  • Odgađa korisnika u dolaženju do sadržaja
  • Ne funkcionira dobro na mobilnim uređajima
  • Ne možete implementirati alternativu sa smanjenim pokretom

Tehnička pravila:

  • Držite animacije ispod 300 ms za UI feedback. Sve dulje djeluje tromo.
  • Koristite CSS prijelaze za jednostavne promjene stanja. JavaScript biblioteke za animacije rezervirajte za složene sekvence.
  • Animirajte samo transform i opacity osim ako nemate vrlo dobar razlog.
  • Testirajte na stvarnim uređajima. Performance panel u Chrome DevToolsima i telefon srednje klase vaši su najbolji prijatelji.
  • Uvijek implementirajte podršku za prefers-reduced-motion.
  • Lazy-loadajte biblioteke za animacije. Ako je animacija ispod vidljivog dijela, ne učitavajte biblioteku dok korisnik ne doscrolluje blizu nje.

Najbolja animacija je ona koju ne primjećujete

Odlična animacija djeluje nevidljivo. Korisnik ne pomisli "cool animacija." Pomisli "ova stranica se dobro osjeća." To je cilj.

Stranice koje osvajaju nagrade za animacije (Awwwards ili CSS Design Awards) često su užasne za stvarno korištenje. Prioritiziraju spektakl nad funkcijom. Vaša stranica bi trebala prioritizirati funkciju nad spektaklom.

Izgradite brzu, upotrebljivu stranicu najprije. Onda dodajte animaciju tamo gdje zaista pomaže. Ako niste sigurni dodaje li animacija vrijednost, uklonite je i pogledajte hoće li itko primijetiti. Ako nitko ne primijeti, nije dodavala vrijednost.

Responzivna, pristupačna stranica koja se učitava za 2 sekunde s nula animacija nadmašit će stranicu prepunu animacija kojoj treba 6 sekundi, svaki put. Krenite od brzine. Dodajte uglađenost pažljivo.


Gradite stranicu i pitate se gdje bi animacija zaista pomogla? Pogledajte kako pristupamo web dizajnu ili javite nam se. Gradimo stranice u kojima svaka animacija zarađuje svoje mjesto.

Podijelite ovaj članak

Povezani članci

KontaktWhatsApp