के स्वयं-लुप्तप्राय लूपिंग के साथ jQuery एनिमेट विलंब समस्याएं मेरे पास timeline
परिभाषा है जो चयनकर्ताओं और उस ऑब्जेक्ट पर लागू करने के लिए देरी और एनिमेशन की एक सूची सूचीबद्ध करती है। आप निर्दिष्ट कर सकते हैं कि एक विशेष वस्तु के लिए कदम looped हो।चरण
function animateWithQueue(e, obj) {
if ($.queue(e[0]).length == 0) {
e.queue(function doNext(next) {
$.each(obj.steps, function(i, step) {
e.delay(step.pause).animate(step.anim, step.options);
});
if (obj.loop) {
e.queue(doNext);
}
next();
});
}
}
यहाँ timeline
जानकारी
var timeline = {
'.square': {
loop: true,
steps: [
{ pause: 800, anim: { right: '+=200' }, options: { duration: 400} },
{ pause: 1000, anim: { right: '-=200' }, options: { duration: 400} }
]
},
'.circle': {
loop: true,
steps: [
{ pause: 1200, anim: { top: '+=200' }, options: { duration: 400} },
{ pause: 1200, anim: { top: '-=200' }, options: { duration: 400} }
]
}
};
है और यहाँ समारोह है कि इसके बाद के संस्करण चेतन समारोह में timeline
डालता है:
यहाँ समारोह है कि एनिमेशन क़तार में प्रयोग किया जाता है है
$.each(timeline, function(selector, obj) {
animateWithQueue($(selector), obj);
});
यहां एक पूर्ण उदाहरण है। http://jsfiddle.net/sprintstar/Tdads/
यह कोड ठीक काम करता प्रतीत होता है, एनीमेशन लूप और स्टॉप बटन को एनिमेशन को रोकने के लिए क्लिक किया जा सकता है, कतारों को साफ़ किया जा सकता है। हालांकि, जिस मुद्दे का हम सामना कर रहे हैं उसे रोकना और ओवर और ओवर से ट्रिगर किया जा सकता है (10 बार कहो)। फिर ध्यान दें कि देरी सही ढंग से काम नहीं कर रही है, और आकार बहुत तेजी से आगे बढ़ते हैं।
यह क्यों है, और इसे कैसे ठीक किया जा सकता है?
वहाँ किसी भी तरह से आप बग प्रोग्राम के रूप में गति प्रदान कर सकते हैं? यह डीबग प्रक्रिया में मदद करेगा। – David
मैं कर सकता था, लेकिन मैन्युअल स्टॉप/शुरू करने वाले दर्पण हमारे एप्लिकेशन कैसे काम करते हैं, और मुझे लगता है कि जब आप इसे पहले चलते हुए देख सकते हैं, और तब स्टॉप/स्टार्ट बटन पर क्लिक करने के बाद काम करने में देरी के प्रभाव को देखना आसान होता है। – Sprintstar
ने कई स्टार्ट-स्टॉप-स्टार्ट जोड़ा http://jsfiddle.net/tjdA3/ पुन: उत्पन्न :) –