- Anime.js, web’de her şeyi animasyonlu hale getirebilen hızlı ve çok yönlü bir JavaScript kütüphanesidir
- V4, tüm yapıyı baştan yazarak performansı büyük ölçüde artırdı ve API’yi de daha modern bir yaklaşımla yeniden düzenledi
- Özellikle ES Module desteği, tree-shaking optimizasyonu ve karmaşık animasyon bileşimlerindeki iyileştirmeler sayesinde geliştirici deneyimi gelişti
Anime.js V4’teki başlıca değişikliklerin özeti
-
ES modüler yapı ve API değişiklikleri
- Artık tüm işlevler ES modül olarak sunuluyor (
anime() → animate())
- Tree-shaking için daha elverişli olduğundan yalnızca gereken işlevler içe aktarılıp kullanılabiliyor
anime({ targets }) → animate(targets, params) biçimine dönüştürüldü
-
Başlıca API değişiklikleri
easeInOutQuad → 'inOutQuad' (önek kaldırıldı)
- Callback işlev adları değişti:
begin() → onBegin()
update() → onUpdate()
complete() → onComplete()
change() → onRender()
- Döngü ile ilgili callback’ler tek bir
onLoop() altında birleştirildi
- Promise işleme yöntemi
.finished → .then() olarak değişti
- Değer gösterimi
{ value: 100 } → { to: 100 } olarak değiştirildi
round: 100 → modifier: utils.round(2) ile sayısal değerler daha esnek biçimde değiştirilebiliyor
-
Animasyon kurma ve bileşim iyileştirmeleri
- Varsayılan easing değeri
outQuad olarak değişti
- Aynı hedefte aynı özellik için animasyonlar çakıştığında önceki tween varsayılan olarak iptal ediliyor (
composition: 'replace')
composition: 'none' → V3 yöntemi (iç içe binmeye izin verir)
composition: 'add' → toplamsal animasyon uygulanabiliyor
-
Oynatma biçimiyle ilgili değişiklikler
direction: 'reverse' veya 'alternate' → reversed: true, alternate: true olarak ayrıldı ve artık aynı anda kullanılabiliyor
loop: 1 → varsayılan döngü değeri 0 olarak değişti
-
Timeline sistemindeki iyileştirmeler
anime.timeline() → createTimeline() olarak değişti
- Alt animasyonlarda
loop, reversed kullanılabiliyor
defaults özelliğiyle alt öğeler için ortak seçenekler tanımlanabiliyor
set(), label, stagger() gibi daha esnek zamanlama denetimleri eklendi
- CSS transform özellikleri alt animasyonlar arasında daha doğal şekilde devam ediyor
-
Stagger ve SVG animasyonları
anime.stagger() → doğrudan stagger() içe aktarılarak kullanılıyor
anime.path() → svg.createMotionPath() kullanılıyor
strokeDashoffset, points gibi SVG özellikleri de svg.drawLine(), svg.morphTo() gibi işlevlerle işleniyor
-
Yardımcı işlevlerin ayrılması
anime.get() → utils.get()
anime.set() → utils.set()
anime.remove() → utils.remove()
anime.round() → utils.round()
-
Motor ayarları değişiklikleri
anime.suspendWhenDocumentHidden = false → engine.pauseWhenHidden = false
anime.speed = 0.5 → engine.playbackRate = 0.5
-
Performans ve yapı iyileştirmeleri
- Tüm kodun refactor edilmesiyle bellek kullanımı azaldı ve performans arttı
- Tween sisteminin yeniden yazılmasıyla çakışan animasyonlardaki hatalar azaldı
composition: 'add' ile toplamsal animasyon desteği geldi
- CSS Transform oluşturulurken doğal süreklilik iyileştirildi
Yeni özellikler
- CSS değişken animasyonu desteği: ör.
animate('#target', { '--radius': '20px' })
- from animasyonu desteği:
{ from: 50, to: 100 } biçimi kullanılabiliyor
- hex renkte alpha desteği: ör.
#FF4433AA biçimi destekleniyor
- createTimer özelliği eklendi:
setTimeout, setInterval yerine kullanılabiliyor
onLoop, onUpdate, onComplete gibi callback’ler kullanılabiliyor
frameRate ayarıyla oyun döngüsü gibi kullanım senaryolarına uygun
- Değişken kare hızı desteği: animasyon, timeline ve timer bazında ayrı ayrı ayarlanabiliyor
Anime.js’in özellikleri
-
Sezgisel API
- Kullanımı kolay ama güçlü bir animasyon API’si sunar.
- Özellik bazlı parametreleri ve esnek bir keyframe sistemini destekler.
- Yerleşik easing işlevleri ve geliştirilmiş dönüşüm özellikleri sunar.
-
SVG araç seti
- Yerleşik SVG yardımcılarıyla şekil dönüşümü, motion path takibi ve çizgi çizimi kolayca yapılabilir.
- Şekil dönüştürme, çizgi çizimi ve motion path özelliklerini içerir.
-
Scroll Observer
- Kaydırmaya göre animasyonları senkronize edip tetikleyebilen bir Scroll Observer API sunar.
- Çeşitli senkronizasyon modlarını ve gelişmiş eşik değerlerini destekler.
-
Gelişmiş staggering
- Yerleşik Stagger yardımcı işleviyle birkaç saniyede etkileyici efektler oluşturabilirsiniz.
- Zaman staggering’i, değer staggering’i ve timeline konum staggering’ini içerir.
-
Spring ve sürükleme özellikleri
- Draggable API ile HTML öğeleri sürükleyebilir, snap yapabilir, flick uygulayabilir ve fırlatabilirsiniz.
- Çeşitli ayarlar, kapsamlı callback’ler ve kullanışlı metotlar sunar.
-
Timeline API
- Güçlü Timeline API ile animasyon sıralarını düzenleyebilir ve callback’leri senkronize edebilirsiniz.
- Animasyon senkronizasyonu, gelişmiş zaman konumları ve oynatma ayarlarını destekler.
-
Duyarlı animasyonlar
- Scope API ile media query’lere kolayca tepki veren animasyonlar oluşturabilirsiniz.
- Media query’ler, özel root öğeleri ve scope metotlarını içerir.
2 yorum
Vay canına, inanılmaz.
Hacker News görüşleri