- Anime.js वेब पर किसी भी चीज़ को animate करने के लिए एक तेज़ और बहुउपयोगी JavaScript लाइब्रेरी है
- V4 में पूरे ढांचे को फिर से लिखा गया है, जिससे performance में बड़ा सुधार हुआ है, और API को भी अधिक आधुनिक तरीके से पुनर्गठित किया गया है
- खास तौर पर ES Module सपोर्ट, tree shaking optimization, और जटिल animation composition में सुधार के जरिए developer experience बेहतर हुआ है
Anime.js V4 के मुख्य बदलावों का सारांश
-
ES मॉड्यूलाइजेशन और API बदलाव
- अब सभी फीचर ES modules के रूप में उपलब्ध हैं (
anime() → animate())
- यह tree shaking के लिए बेहतर है, इसलिए केवल ज़रूरी फीचर import करके इस्तेमाल किए जा सकते हैं
anime({ targets }) → animate(targets, params) के रूप में बदला गया है
-
मुख्य API बदलाव
easeInOutQuad → 'inOutQuad' (prefix हटाया गया)
- callback function नाम बदले गए हैं:
begin() → onBegin()
update() → onUpdate()
complete() → onComplete()
change() → onRender()
- loop से जुड़े callback अब
onLoop() एक ही नाम में एकीकृत कर दिए गए हैं
.finished → .then() के साथ Promise handling का तरीका बदला गया है
{ value: 100 } → { to: 100 } के रूप में value expression बदला गया है
round: 100 → modifier: utils.round(2) के जरिए संख्यात्मक बदलाव अब अधिक लचीले तरीके से किए जा सकते हैं
-
animation configuration और composition में सुधार
- default easing value अब
outQuad है
- एक ही target पर एक ही property की animation दोहराने पर डिफ़ॉल्ट रूप से पिछला tween cancel हो जाता है (
composition: 'replace')
composition: 'none' → V3 वाला तरीका (nesting की अनुमति)
composition: 'add' → additive animation लागू की जा सकती है
-
playback method से जुड़े बदलाव
direction: 'reverse' या 'alternate' → reversed: true, alternate: true में अलग किया गया है, इसलिए अब इन्हें साथ में इस्तेमाल किया जा सकता है
loop: 1 → default loop अब 0 कर दिया गया है
-
Timeline सिस्टम में सुधार
anime.timeline() → createTimeline() में बदला गया है
- child animations में
loop, reversed का उपयोग किया जा सकता है
defaults property से child animations के लिए common options सेट किए जा सकते हैं
set(), label, stagger() जैसी अधिक लचीली timing control सुविधाएँ जोड़ी गई हैं
- CSS transform properties अब child animations के बीच अधिक स्वाभाविक रूप से जुड़ती हैं
-
Stagger और SVG animation
anime.stagger() → stagger() को सीधे import करके इस्तेमाल करें
anime.path() → svg.createMotionPath() का उपयोग
strokeDashoffset, points जैसी SVG properties को भी svg.drawLine(), svg.morphTo() आदि से handle किया जाता है
-
utility functions का विभाजन
anime.get() → utils.get()
anime.set() → utils.set()
anime.remove() → utils.remove()
anime.round() → utils.round()
-
engine settings में बदलाव
anime.suspendWhenDocumentHidden = false → engine.pauseWhenHidden = false
anime.speed = 0.5 → engine.playbackRate = 0.5
-
performance और structure में सुधार
- पूरे code refactoring से memory usage कम हुआ है और performance बेहतर हुई है
- Tween सिस्टम को फिर से लिखने से duplicate animation के समय bugs कम हुए हैं
composition: 'add' के साथ additive animation सपोर्ट
- CSS Transform compose करते समय स्वाभाविक continuity बेहतर हुई है
नए फीचर
- CSS variable animation support: उदाहरण
animate('#target', { '--radius': '20px' })
- from animation support:
{ from: 50, to: 100 } फ़ॉर्म का उपयोग संभव
- hex color में alpha support: उदाहरण
#FF4433AA फ़ॉर्मेट सपोर्ट
- createTimer फीचर जोड़ा गया:
setTimeout, setInterval का विकल्प
onLoop, onUpdate, onComplete आदि का उपयोग संभव
frameRate control के जरिए game loop जैसी स्थितियों में उपयोग संभव
- variable frame rate support: animation, timeline और timer के लिए अलग-अलग सेटिंग संभव
Anime.js की विशेषताएँ
-
सहज API
- यह उपयोग में आसान लेकिन शक्तिशाली animation API प्रदान करता है।
- यह property-specific parameters और लचीले keyframe सिस्टम को सपोर्ट करता है।
- यह built-in easing functions और बेहतर transform capabilities प्रदान करता है।
-
SVG toolset
- built-in SVG utilities के जरिए shape morphing, motion path tracking, और line drawing आसानी से की जा सकती है।
- इसमें shape morphing, line drawing, और motion path फीचर शामिल हैं।
-
scroll observer
- यह Scroll Observer API प्रदान करता है, जिससे scroll के अनुसार animation को sync और trigger किया जा सकता है।
- यह कई sync modes और advanced thresholds को सपोर्ट करता है।
-
advanced staggering
- built-in Stagger utility function के जरिए कुछ ही सेकंड में शानदार effects बनाए जा सकते हैं।
- इसमें time staggering, value staggering, और timeline position staggering शामिल हैं।
-
spring और drag फीचर
- Draggable API के जरिए HTML elements को drag, snap, flick, और throw किया जा सकता है।
- यह कई settings, व्यापक callbacks, और उपयोगी methods प्रदान करता है।
-
Timeline API
- शक्तिशाली Timeline API के जरिए animation sequence को व्यवस्थित किया जा सकता है और callbacks को sync किया जा सकता है।
- यह animation synchronization, advanced time positions, और playback settings को सपोर्ट करता है।
-
responsive animation
- Scope API का उपयोग करके media query पर आसानी से प्रतिक्रिया देने वाली animations बनाई जा सकती हैं।
- इसमें media queries, custom root elements, और scope methods शामिल हैं।
2 टिप्पणियां
वाह, कमाल है
Hacker News की राय