animate मेथड
animate मेथड विभिन्न CSS प्रॉपर्टीज के लिए
एनिमेशन इफेक्ट्स बनाने की अनुमति देता है। एकमात्र अनिवार्य पैरामीटर
- CSS प्रॉपर्टीज के साथ एक ऑब्जेक्ट, जैसा कि
हम css मेथड में
पास करते हैं। कई प्रॉपर्टीज, जिनमें गैर-संख्यात्मक मान या कई
मान होते हैं, उन्हें jQuery की बेसिक फंक्शनैलिटी द्वारा
एनिमेट नहीं किया जा सकता है (उदाहरण के लिए background-color)। इसके अलावा
CSS प्रॉपर्टीज के संक्षिप्त नाम हमेशा सपोर्टेड नहीं होते हैं, उदाहरण के लिए
font - इसके बजाय fontSize या
font-size का उपयोग करने की आवश्यकता है। मानों से पहले '+=' या '-=' लगाया जा सकता है,
ऐसे में बाद में निर्दिष्ट मान को वर्तमान प्रॉपर्टी मान में जोड़ा या
घटाया जाएगा। संख्यात्मक मानों के बजाय show, hide या
toggle भी लगाया जा सकता है। सभी jQuery इफेक्ट्स, जिनमें animate शामिल है, को
ग्लोबली डिसेबल किया जा सकता है, सेटिंग jQuery.fx.off = true का उपयोग करके,
जो अवधि के मान को 0 पर सेट करती है।
सिंटैक्स
एनिमेशन का पहला पैरामीटर CSS प्रॉपर्टीज के साथ एक ऑब्जेक्ट है
और कुंजी: मान फॉर्मेट में उनके मान, जिन्हें हम
एनिमेट करने जा रहे हैं। शेष पैरामीटर्स को
वैकल्पिक माना जाता है। दूसरा पैरामीटर - एनिमेशन की
अवधि को मिलीसेकंड में निर्धारित करता है, डिफॉल्ट रूप से 400ms
होती है। तीसरा पैरामीटर ट्रांजिशन के लिए ईजिंग फंक्शन
(डिफॉल्ट रूप से swing है),
और चौथा - कॉलबैक फंक्शन, जो
एनिमेशन पूरा होने के बाद निष्पादित होगा:
.animate(प्रॉपर्टीज, [अवधि ], [ईजिंग फंक्शन ], [कॉलबैक फंक्शन ]);
समय न केवल मिलीसेकंड में निर्धारित किया जा सकता है,
बल्कि कीवर्ड slow (600ms)
और fast (200ms) से भी, जितना अधिक मान,
उतनी धीमी एनिमेशन।
विभिन्न विकल्पों को ऑब्जेक्ट के रूप में, जावास्क्रिप्ट ऑब्जेक्ट के रूप में पास किया जा सकता है,
जिसमें कुंजी: मान जोड़े होते हैं:
.animate(प्रॉपर्टीज, विकल्प);
उदाहरण के लिए, आइए CSS प्रॉपर्टीज width
और height के लिए मान toggle सेट करें। अवधि
5000ms पर, ईजिंग फंक्शन को ऑब्जेक्ट के रूप में पास करेंगे,
चौड़ाई के लिए यह लीनियर फंक्शन होगा, और
ऊंचाई के लिए - easeOutBounce, साथ ही
एनिमेशन पूरा होने पर हमारा फंक्शन एक बार निष्पादित होगा
(complete कुंजी देखें), जो #test वाले एलिमेंट के बाद
'Animation complete.' लेबल वाला एक डिव रखेगा:
$('#test').animate({
width: 'toggle',
height: 'toggle'
}, {
duration: 5000,
specialEasing: {
width: 'linear',
height: 'easeOutBounce'
},
complete: function() {
$(this).after('<div>Animation complete.</div>');
}
});
नीचे दी गई तालिका में options ऑब्जेक्ट के गुण और विधियाँ
और उनका विवरण दिया गया है:
| नाम | विवरण |
|---|---|
duration |
मिलीसेकंड में एनिमेशन की अवधि - स्ट्रिंग या
संख्या। डिफॉल्ट रूप से 400ms।
|
easing |
निर्धारित करता है कि किस ईजिंग फंक्शन का
उपयोग करना है। डिफॉल्ट रूप से swing।
|
queue |
बूलियन मान या स्ट्रिंग। डिफॉल्ट रूप से
true। इंगित करता है - एनिमेशन को
कतार में रखना है या नहीं। false मान पर
एनिमेशन तुरंत शुरू हो जाएगा। यदि पैरामीटर
स्ट्रिंग के रूप में पास किया जाता है, तो एनिमेशन इस
पैरामीटर द्वारा दर्शाई गई कतार में रखा जाएगा। कस्टम नाम वाली
कतार का उपयोग करते समय,
एनिमेशन स्वचालित रूप से नहीं शुरू होगा, इसे
शुरू करने के लिए - dequeue('queuename') का उपयोग करें।
|
specialEasing |
यहां आप एक ऑब्जेक्ट पास कर सकते हैं, जिसमें कुंजियाँ CSS प्रॉपर्टीज होंगी, और मान - संबंधित ईजिंग फंक्शन। |
step |
एक फंक्शन, जो प्रत्येक एनिमेटेड एलिमेंट की प्रत्येक एनिमेटेड
प्रॉपर्टी के लिए कॉल की जाती है। यह Tween ऑब्जेक्ट को
संशोधित करने की अनुमति देती है ताकि मान सेट होने से पहले
प्रॉपर्टी के मान को बदला जा सके। पैरामीटर्स के रूप में
वर्तमान tween मान और Tween ऑब्जेक्ट स्वीकार करता है।
|
progress |
एक फंक्शन, जो एनिमेशन के प्रत्येक चरण के बाद कॉल की जाती है,
प्रत्येक एलिमेंट के लिए केवल एक बार, एनिमेटेड प्रॉपर्टीज की संख्या
के बावजूद। फंक्शन तीन पैरामीटर्स स्वीकार करता है
animation (प्रॉमिस के रूप में),
progress (0 से 1 तक की संख्या)
और remainingMs (शेष मिलीसेकंड की संख्या)।
|
complete |
एक फंक्शन, जो एलिमेंट की एनिमेशन समाप्त होने के बाद
एक बार कॉल की जाती है। फंक्शन
animation (प्रॉमिस के रूप में) स्वीकार करता है।
|
start |
एक फंक्शन, जो कॉल की जाती है, जब एलिमेंट की एनिमेशन
शुरू होती है। फंक्शन
animation (प्रॉमिस के रूप में) और
jumpedToEnd (बूलियन मान। यदि
true, तो एनिमेशन स्वचालित रूप से
समाप्त हो जाती है) स्वीकार करता है।
|
done |
एक फंक्शन, जो कॉल की जाती है, जब एलिमेंट की एनिमेशन
समाप्त होती है (इसका प्रॉमिस सफलतापूर्वक
पूरा हुआ)। फंक्शन
animation (प्रॉमिस के रूप में) और
jumpedToEnd (बूलियन मान। यदि
true, तो एनिमेशन स्वचालित रूप से
समाप्त हो जाती है) स्वीकार करता है।
|
fail |
एक फंक्शन, जो कॉल की जाती है, जब एलिमेंट की एनिमेशन
त्रुटि के साथ समाप्त होती है (इसका प्रॉमिस
त्रुटि के साथ पूरा हुआ)। फंक्शन
animation (प्रॉमिस के रूप में) और
jumpedToEnd (बूलियन मान। यदि
true, तो एनिमेशन स्वचालित रूप से
समाप्त हो जाती है) स्वीकार करता है।
|
always |
एक फंक्शन, जो कॉल की जाती है, जब एलिमेंट की एनिमेशन
समाप्त हो जाती है या बिना पूरा हुए रुक जाती है
(इसका प्रॉमिस सफलतापूर्वक या
त्रुटि के साथ पूरा हुआ)। फंक्शन
animation (प्रॉमिस के रूप में) और
jumpedToEnd (बूलियन मान। यदि
true, तो एनिमेशन स्वचालित रूप से
समाप्त हो जाती है) स्वीकार करता है।
|
उदाहरण
आइए #left बटन पर क्लिक करने पर,
हरे वर्ग को बाईं ओर शिफ्ट करें, और #right बटन पर
दाईं ओर 50px पर शिफ्ट करें, साथ ही अवधि
600ms पर सेट करें - slow कमांड के साथ:
<button id="left">left</button>
<button id="right">right</button>
<div class="block"></div>
div {
position: absolute;
background-color: green;
left: 50px;
width: 100px;
height: 100px;
margin: 5px;
}
$('#right').click(function() {
$('.block').animate({'left': '+=50px'}, 'slow');
});
$('#left').click(function() {
$('.block').animate({'left': '-=50px'}, 'slow');
});
यह भी देखें
-
showमेथड,
जो एलिमेंट्स को धीरे-धीरे दिखाता है -
stopमेथड,
जो चल रही एनिमेशन को रोकने की अनुमति देता है -
delayमेथड,
जो इवेंट्स के निष्पादन में देरी सेट करता है -
jQuery.fx.offप्रॉपर्टी,
जो एनिमेशन को ग्लोबली डिसेबल करने की अनुमति देती है -
animatedसेलेक्टर,
जो उन एलिमेंट्स को चुनता है, जो वर्तमान समय एनिमेशन में शामिल हैं