2012-04-24 17 views
6

के लिए आते हैं एक div "dMyDiv"jQuery चेतन लेकिन फिर वापस सामान्य

मैं jQuery में नोटिस पर विचार करें मैं तो यह चेतन कर सकते हैं:

$("#dMyDiv").animate({ 
     backgroundColor: "#aa0000" 
    }, 1000); 

मेरी div करने के लिए रंग का पृष्ठभूमि की तरह एक लाल लाता है। लेकिन क्या 10 सेकंड कहने के बाद मेरे रास्ते की मेरी सामान्य सफेद पृष्ठभूमि पर वापस जाने का कोई तरीका है? मुझे लगता है कि एक कॉलबैक फ़ंक्शन है लेकिन मुझे यकीन नहीं है कि एनीमेशन शुरू करना संभव है, और एक बार जब एनीमेशन मेरी नियमित पृष्ठभूमि (एनीमेशन से पहले) पर वापस जाने के लिए किया जाता है। मैं सिर्फ यह करना चाहिए: लाल चेतन के बाद

$("#dMyDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 1000, function() { 
      $(#dMyDiv").animate({ backgroundColor: "#fff" }, 1000); 
      }; 
); 

अर्थ, बस सफेद करने के लिए फिर से चेतन?

उत्तर

0

मैं इस लोगों के साथ यह करने के लिए कर रहा था:

http://jsfiddle.net/aN7qz/

यहाँ कोड है:

$("#myDiv").animate({ 
      backgroundColor: "#aa0000" 
      }, 
      1000, 
      function() { 
       $("#myDiv").animate({ backgroundColor: "#fff" }, 1000); 
      } 
        ); 
+0

मैंने सोचा था कि आप 10 सेकंड इंतजार करना चाहते हैं और फिर पुनर्मिलन करना चाहते हैं? यदि ऐसा है, तो यह करने के लिए मेरे उत्तर की जांच करें। यदि नहीं और आप इसे पहली एनीमेशन के तुरंत बाद कॉल करना चाहते हैं, तो आपको मिल गया है! –

+0

@ स्कॉट - वास्तव में मैं सिर्फ एक एनीमेशन से दूसरे एनीमेशन में जाना चाहता था, और यदि आप इसके बारे में सोचते हैं तो मैं सेकंड को एनिमेट करने के लिए सेट कर सकता हूं ताकि ऐसा करना चाहिए। मैं अभी भी आपको अपने कड़ी समर्पित काम के लिए +1 कर दूंगा :)। – oJM86o

+1

oJM86o: मेरा जवाब सही था और कुछ समय के लिए स्वीकार किए गए एक के रूप में बने रहे। अब आपने कम कार्यक्षमता के साथ खुद को जवाब दिया है और स्वीकार किए गए उत्तर के रूप में अपना उत्तर देने के लिए स्वीकृत उत्तर हटा दिया है। नतीजतन, मेरी प्रतिष्ठा 15 अंक के लिए डाउनग्रेड की गई। ¬¬ – lu1s

7

आप सही हैं। तीसरा पैरामीटर एक ऐसा फ़ंक्शन है जो एनीमेशन पूर्ण होने के बाद निष्पादित होता है।

$("#dMyDiv").stop().animate({backgroundColor:'#aa0000'},1000,function(){ 
    $(this).animate({backgroundColor:'#fff'},1000); 
}); 
+0

क्या बेगी में स्टॉप का मुद्दा है nning? – oJM86o

+0

यदि आप एनीमेशन को नहीं रोकते हैं, और उस समय चल रहा है जब यह फिर से ट्रिगर होता है, तो यह एक तरह की कतार में आ जाएगा, जिससे यह अजीब लग रहा है। उदाहरण के लिए, आप एक बटन पर क्लिक करके एनीमेशन ट्रिगर करते हैं, आप इसे बार-बार 10 बार करते हैं। यदि आप रुकते नहीं हैं तो यह खत्म होने तक कई बार चलाएगा। – lu1s

+0

ठीक है धन्यवाद, मैं इसे भी जोड़ूंगा। – oJM86o

3

आप setTimeout इस्तेमाल कर सकते हैं:

$("#dMyDiv").stop(true, true).animate({ 

    backgroundColor: "#aa0000" 

}, 1000, function() { 

    setTimeout(function() {  

     $(#dMyDiv").animate({ 

      backgroundColor: "#fff" 

     }, 1000); 

    }, 10 * 1000); 

}); 
+0

शुरुआत में स्टॉप का बिंदु क्या है? – oJM86o

+1

यदि आप एनीमेशन को नहीं रोकते हैं, और उस समय चल रहा है जब यह फिर से ट्रिगर होता है, तो यह एक प्रकार की कतार में आ जाएगा, जिससे यह अजीब लग रहा है। उदाहरण के लिए, आप एक बटन पर क्लिक करके एनीमेशन ट्रिगर करते हैं, आप इसे बार-बार 10 बार करते हैं। यदि आप रुकते नहीं हैं तो यह खत्म होने तक कई बार चलाएगा। – lu1s

+0

lu1s सही है और आप एक आसान संक्रमण के लिए ['.stop (true, true)'] (http://api.jquery.com/stop/) का उपयोग करना चाहते हैं। लिंक प्रलेखन को क्यों देखें। –

संबंधित मुद्दे