मान लीजिए कि मेरे पास कुछ div है, और मैं अपने बच्चों के लिए .animate({opacity:0},400, function(){});
का उपयोग करता हूं। क्या एनीमेशन के पूरा होने के लिए शेष समय प्राप्त करना संभव है? उदाहरण के लिए, 200 एमएस शेष, या 0 अगर कोई एनीमेशन नहीं है? धन्यवाद।क्या एनीमेशन के शेष समय को पाने का कोई तरीका है?
उत्तर
मदद करने के लिए आप को बेहतर समझते हैं कि कैसे आप step
समारोह
[के रूप में gdoron द्वारा पोस्ट की गई] मैं कदम का उपयोग कर समारोह शेष समय प्राप्त करने के लिए एक उदाहरण बनाया का उपयोग कर सकते हैं:
(एनीमेशन को रोकने और शेष समय को पुनर्प्राप्त करने के लिए get state!
बटन पर क्लिक करें!)
demo with distance
demo with opacity
दूरी उदाहरण jQuery:
var time = 4000;
var distance = 300;
var currentTime = 0;
$('#ball').animate({
left: distance
}, {
duration: time,
step: function (now, fx) {
currentTime = Math.round((now * time)/distance);
var data = fx.prop + ' ' + Math.round(now) + '; <b>' + currentTime + 'ms</b> ';
$('body').append('<p>' + data + '</p>');
},
easing: 'linear'
});
$('#getTime').click(function() {
$('#ball').stop();
$('body').prepend('<p>currentTime is:' + currentTime + ' ms; REMAINING: ' + (time - currentTime) + 'ms</p>');
});
- आप देख सकते हैं कि कैसे मैं (
left
) संपत्ति है कि वर्तमान में एनिमेटेड है पाने के लिएanimation step
अंदरfx.prop
इस्तेमाल किया। - आप देख सकते हैं कि: एनीमेशन समय और दूरी जानने (अस्पष्टता, जो कुछ भी ...) हम आसानी से प्राप्त कर सकते हैं राज्य कुछ सरल गणित (
(now*time)/distance
) और लौट आएnow
मूल्य के लिए धन्यवाद द्वारा 'बंद कर दिया/रोका गया' ।
धन्यवाद यह बहुत उपयोगी है! और ऐसा लगता है कि अगर हम स्टेप फ़ंक्शन को केवल परिवर्तनीय लेखन में सीमित करते हैं तो यह अधिक प्रदर्शन नहीं करेगा। वैसे भी यह हर 1 एमएस या कुछ नहीं कहा जाएगा। – Anonymous
@ user1125062 ऐसा नहीं होना चाहिए, क्योंकि हम केवल कुछ ऐसा एक्सेस कर रहे हैं जो पहले से ही हमारी एनीमेशन चला रहा है। –
मुझे पता नहीं क्यों आपको इसकी आवश्यकता है, लेकिन step
मदद कर सकते हैं यह मान निकालें:
चरण समारोह
.animate के दूसरे संस्करण() एक कदम विकल्प प्रदान करता है - एक कॉलबैक फ़ंक्शन जिसे एनीमेशन के प्रत्येक चरण पर निकाल दिया जाता है। यह फ़ंक्शन कस्टम एनीमेशन प्रकारों को सक्षम करने या एनीमेशन को बदलने के लिए उपयोगी है क्योंकि यह हो रहा है। यह दो तर्क (अब और एफएक्स) स्वीकार करता है, और यह एनिमेटेड होने वाले डीओएम तत्व पर सेट है।
अब: संपत्ति के संख्यात्मक मान प्रत्येक चरण में एनिमेटेड किया जा रहा
fx: jQuery.fx प्रोटोटाइप वस्तु के लिए एक संदर्भ है, जो इस तरह के एनिमेटेड तत्व, शुरुआत के लिए ELEM के रूप में संपत्तियों की एक संख्या में शामिल और क्रमशः एनिमेटेड संपत्ति के पहले और अंतिम मूल्य के लिए समाप्त होता है, और एनिमेटेड संपत्ति के लिए प्रोप।
हमम, लेकिन मुझे इसके साथ क्या करना चाहिए? :) – Anonymous
@ user1125062। आप वर्तमान मूल्य, पहला मूल्य, अंतिम मूल्य इत्यादि प्राप्त कर सकते हैं, बस इसके साथ खेलें। वैसे भी मुझे यकीन है कि आप जो करने की कोशिश कर रहे हैं, उसके अन्य तरीके हैं ... – gdoron
बिना सेट के अंतराल या इस विधि, नहीं, AFAIK। इसे पाने का यही एकमात्र तरीका है। – inhan
सुनो, step
फ़ंक्शन को ध्यान में रखें, हर कोई इस बारे में बात करता रहता है। मुझे एक बार अपनी ज़रूरत की ज़रूरत होती थी और मैंने खुद लिखा था कि कुल एनीमेशन समय पर एक बार देखकर इसे पीछे छोड़ दिया गया है (आपको पहले से ही यह ज्ञात होना चाहिए क्योंकि आपने इसे एक बार jQuery में दिया था) और के वर्तमान और लक्ष्य अस्पष्टता। फिर कुल एनीमेशन समय के साथ उस मात्रा को गुणा करें, कुल योग से कुल घटाया गया है। इतना ही आसान।
छद्म कोड:
func calculate-time-left-in-a-running-fade-in-animation:
{
var current_opacity = $elem.css('opacity');
var target_opacity = this.getTargetOpacity();
var total = this.getTotalAnimationTime();
var quotient = current_opacity/target_opacity;
return total - quotient * total;
}
बस जिज्ञासा से बाहर
दिलचस्प दृष्टिकोण, इसके बावजूद नहीं है! हालांकि अगर परिशुद्धता महत्वपूर्ण थी, तो कदम ही जाने का एकमात्र तरीका है। – Anonymous
विशेषता मान को स्वयं प्राप्त करना या अब परिवर्तनीय का उपयोग करना वही बात है, जब तक एनीमेशन रोका जाता है। JQuery चरण-उदाहरण @roXon में एनीमेशन के प्रत्येक चरण पर, बहुत अधिक ओवरहेड चल रहा होगा। वास्तव में किए गए उदाहरण जैसे वैश्विक चर भी पेश कर सकते हैं। यदि आप गणना से पहले एनीमेशन को रोकना चाहते हैं (फिर से उदाहरण की तरह) और प्रोग्रामेटिक रूप से बाद में एनीमेशन फिर से शुरू करें, तो बिल्कुल बिल्कुल कोई अंतर नहीं है। मैं यह भी कहूंगा कि एक चल रहे एनीमेशन के तहत इस गणना मूल्य को एक ही परिणाम देगा। –
चरण तर्क का संग्रहित उत्पाद, शेष समय का गणना मूल्य, लाइव सूची की तरह नहीं है, मान स्वयं को सटीक मूल्य पर अपडेट नहीं करता है। और जब भी आप इसका उपयोग करेंगे, तब भी यह "पुरानी" गणना के अलावा कुछ भी नहीं होगा। इस जानकारी अंतर को ब्रिज करने के लिए आपके पास एक मध्यम व्यक्ति भी जिम्मेदार होगा, चरण कार्य, जो सिद्धांत में सटीकता को विफल करना चाहिए। लेकिन यदि आप इसके बजाय एक ही गणना बनाते हैं तो ठीक है जब आपको शेष समय जानने की आवश्यकता होती है, तो क्या यह और भी सटीक नहीं होगा? और कोड और प्रसंस्करण ओवरहेड की पठनीयता दोनों में भी सस्ता है। –
- 1. क्या अलर्ट बॉक्स की उत्पत्ति पाने का कोई तरीका है?
- 2. क्या ट्वीट की पसंदीदा गिनती पाने का कोई तरीका है?
- 3. क्या स्क्रॉलबार ऊंचाई और चौड़ाई पाने का कोई तरीका है?
- 4. ग्रैफेम पाने का सही तरीका क्या है?
- 5. क्या कोर एनीमेशन को इसके धागे को चलाने के लिए मजबूर करने का कोई तरीका है?
- 6. क्या समय क्षेत्र (केवल) देश कोड (वैध आईएसओ -3166 कोड) के साथ एक समय पाने का कोई तरीका है?
- 7. क्या वर्तमान अनुरोध के HttpServletRequest को पाने का कोई स्थिर तरीका है
- 8. jQuery.remove() - क्या आप इसे हटाने के बाद ऑब्जेक्ट को वापस पाने का कोई तरीका है?
- 9. फ़ाइल का आकार पाने का एक अच्छा तरीका क्या है?
- 10. क्या CABasicAnimation को रोकने का कोई तरीका है?
- 11. क्या दिन का समय निकालने का कोई बेहतर तरीका है?
- 12. क्या एक्शनबार के शो/छुपा एनीमेशन को अक्षम करने का कोई तरीका है?
- 13. क्या UITableView scrollToRowAtIndexPath पर एनीमेशन को नियंत्रित करने का कोई तरीका है?
- 14. ओरेकल: क्या हालिया एसक्यूएल सिंटैक्स त्रुटियों को पाने का कोई तरीका है?
- 15. कोर एनीमेशन का उपयोग करना, क्या कई कैलियर के लिए एनीमेशन समूह करने का कोई तरीका है?
- 16. क्या कैमरे की स्ट्रीम के आईओएस पर चमक स्तर पाने का कोई तरीका है?
- 17. क्या सोने के धागे को जगाने का कोई तरीका है?
- 18. क्या ढेर के ऊपर से टुकड़ा पाने का कोई तरीका है?
- 19. हैकोक टूलबल्ट के व्यक्तिगत घटकों को पाने का कोई तरीका है?
- 20. रूबी: कक्षा के संलग्न मॉड्यूल कॉन्स को पाने का कोई तरीका है?
- 21. स्टैक के वास्तविक आकार को पाने का कोई तरीका क्यों नहीं है?
- 22. क्या सभी समय बहिष्कृत करने का कोई तरीका है?
- 23. एक नालीदार बूल पाने का उद्देश्य-सी तरीका क्या है?
- 24. क्या रननेबल को पैरामीटर पास करने का कोई तरीका है?
- 25. Django ORM का उपयोग कर पिछले/अगले आइटम को पाने का कोई चालाक तरीका है?
- 26. एंड्रॉइड का वर्तमान लोकेल पाने का अपना तरीका क्यों है?
- 27. क्या सुंदर सूप का उपयोग कर एचटीएमएल टेबल के एन-वें कॉलम को पाने का कोई साफ तरीका है?
- 28. क्या कोई संदर्भ पता प्राप्त करने का कोई तरीका है?
- 29. क्या गतिविधियों के बीच संक्रमण करते समय उपयोग करने के लिए कोई फ़्लिप एनीमेशन उपलब्ध है?
- 30. क्या कुछ समय बाद कोई बटन UIalertView को खारिज करने का कोई तरीका नहीं है?
... तुम क्यों है कि मूल्य की ज़रूरत है? –
@ रोकोसी बुल्जन। यह मुझे लगता है कि एक शौक है। वह संग्रह एनिमेशन समय है। – gdoron
मुझे बच्चों को कुछ कॉलबैक कतार में समस्या है - यह हमेशा ट्रिगर नहीं होता है, और यह निर्धारित करना आसान नहीं है कि कौन सा बच्चा इसे कतार में रखता है, इसलिए मैं इसे अधिक विश्वसनीय बनाने के लिए सेटटाइमआउट के साथ प्रयास करना चाहता था। – Anonymous