AnimeJs v4 yayımlandı
(animejs.com)- 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ü
- Artık tüm işlevler ES modül olarak sunuluyor (
-
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
outQuadolarak 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
- Varsayılan easing değeri
-
Oynatma biçimiyle ilgili değişiklikler
direction: 'reverse'veya'alternate'→reversed: true,alternate: trueolarak ayrıldı ve artık aynı anda kullanılabiliyorloop: 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,reversedkullanılabiliyor defaultsözelliğiyle alt öğeler için ortak seçenekler tanımlanabiliyorset(),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ğrudanstagger()içe aktarılarak kullanılıyoranime.path()→svg.createMotionPath()kullanılıyorstrokeDashoffset,pointsgibi SVG özellikleri desvg.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 = falseanime.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.
#FF4433AAbiçimi destekleniyor - createTimer özelliği eklendi:
setTimeout,setIntervalyerine kullanılabiliyoronLoop,onUpdate,onCompletegibi callback’ler kullanılabiliyorframeRateayarı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