/ / वर्तमान jQuery एनीमेशन को धीमा और बंद कैसे करें? - jquery, jquery-animate

वर्तमान jQuery एनीमेशन को धीमा और बंद कैसे करें? - jquery, jquery-animate

jQuery का प्रश्न। मेरे पास 5000x के लिए दाईं ओर एनिमेटेड .block चल रहा है।

$(".block").animate({"left": "+=5000px"}, 2000, "linear");

क्लिक के बाद मुझे इस एनीमेशन को धीरे-धीरे बंद करने की आवश्यकता है:

("#clickme").click(function() {
// ... stop $(".block") animation, not immediately, but with some easing
});

क्या यह jQuery के साथ संभव है? कोई भी सुझाव प्रशंसनीय होगा।

उत्तर:

जवाब के लिए 2 № 1

आप तुरंत .stop () फ़ंक्शन के साथ एक एनीमेशन को रोक सकते हैं:

http://api.jquery.com/stop/

हालांकि यह एक कठिन पड़ाव है। यदि आप एनिमेशन कर रहे हैं, तो यह एक बहुत ही अचानक रोक होगा।


जवाब के लिए 2 № 2

मैं "उपयोगकर्ता द्वारा स्टॉप ट्रिगर पर क्लिक करने पर एनीमेशन को रोककर इससे निपटा करता हूं, फिर एक नया एनीमेशन शुरू करता है जो एक सहज स्टॉप का भ्रम देता है। यहां एक उदाहरण दिया गया है:" http://jsfiddle.net/brianflanagan/BsQvh/ चाल दूसरे एनीमेशन की सेटिंग्स को घुमा रही है ताकि चीजें आसानी से काम करें। आप अवधि और दूरी से शादी करना चाहते हैं, इसलिए यह मूल एनीमेशन के साथ मिश्रण करता है।


जवाब के लिए 0 № 3

मुझे पता है कि यह पुराना है, लेकिन यहाँ मैं यह कैसे करूँगा:

var stopping = false;
var lastNow = 0;
$(".block").animate({left:"+=5000px"}, {
step: function(now){
if (stopping) {
var delta = lastNow - now;
$(this).stop().animate({ left : "+=" delta * 2 }, 1000, "easeInOutQuad");
stopping = false;
}
lastNow = now;
}});

रोकने के लिए, सेट करें stopping सेवा मेरे true