Üç alət: CSS, Web Animations API, GSAP
Brauzerdə animasiya üçün üç əsas yol var.
- CSS (
transition,@keyframes) - hover, açılış və sadə effektlər. Kod azdır, brauzer özü optimallaşdırır. - Web Animations API (
element.animate()) - CSS-in imkanları, amma JS-dən idarə olunur:pause(),reverse(),finished. - GSAP - mürəkkəb ardıcıllıqlar,
timeline,ScrollTrigger, dəqiq idarəetmə, brauzerlər arası eyni davranış.
Çox vaxt GSAP lazım olmur. Düymənin hover effekti üçün CSS kifayətdir; kitabxananı yalnız ardıcıllıq və scroll səhnəsi lazım olanda əlavə edin.
| Alət | Güclü tərəf | Məhdudiyyət |
|---|---|---|
| CSS | Sadə, kodsuz, brauzer optimallaşdırır | Mürəkkəb ardıcıllıq və idarəetmə çətindir |
animate() | JS idarəsi, finished, reverse | Timeline və scroll səhnəsi yoxdur |
| GSAP | timeline, ScrollTrigger, stagger, dəqiqlik | Əlavə asılılıq, bundle ölçüsü |
CSS animasiyaları
transition iki vəziyyət arasındakı keçiddir (məsələn, hover). @keyframes isə çoxaddımlı animasiyanı təsvir edir və animation ilə qoşulur. Aşağıdakı kodun sonunda prefers-reduced-motion bloku var: onu bütün layihədə bir dəfə yazmaq faydalıdır.
.card {
transition: transform 0.3s ease, opacity 0.3s ease;
}
.card:hover {
transform: translateY(-4px);
}
@keyframes fade-up {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: none; }
}
.hero {
animation: fade-up 0.6s ease-out both;
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}💡
animationxassəsindəbothdəyəri başlamazdan əvvəl ilk, bitəndən sonra son kadrı saxlayır.
Web Animations API
element.animate(keyframes, options) CSS animasiyası kimi işləyir, amma Animation obyekti qaytarır. Onunla animasiyanı dayandırmaq, sürətini dəyişmək, geri oynatmaq və bitməsini finished promise-i ilə gözləmək olar.
const box = document.querySelector('.box');