2011-12-10 18 views
28

मैं एक मनमाना घटना के साथ जावास्क्रिप्ट के माध्यम से एनिमेटिंग शुरू करने के लिए एक svg एनिमेट तत्व कैसे ट्रिगर करूं? मैं begin="mySpecialEvent" की तरह कुछ कल्पना कर रहा हूं, फिर बाद में मैं mySpecialEvent भेज सकता हूं और एनीमेशन शुरू हो जाएगा (या फिर से शुरू हो गया है अगर यह पहले से ही खेला गया है)।घटना के साथ एसवीजी ट्रिगर एनीमेशन

+0

एक बड़ा सवाल के लिए +1; मैं [एक अलग सवाल] के लिए एक ही चीज़ सोच रहा था (http://stackoverflow.com/questions/8438830/move-a-div-in-a-curved-path-like-tweening-in-flash-old- दिन/8439107 # 8439107)। अब मुझे पता है कि मांग पर एसवीजी एनीमेशन को कैसे लात मारना है, मैं उस जवाब को बेहतर बना सकता हूं। :) – Phrogz

उत्तर

42

यहाँ एक लेख है को शामिल किया गया है कि तुम क्या जरूरत है:
http://dev.opera.com/articles/view/advanced-svg-animation-techniques/

संपादित करें: लिंक हटा दिया है। संग्रहीत प्रतियां:

संक्षेप में:

  1. <animation>begin="indefinite" साथ बनाएँ इतना है कि यह दस्तावेज लोड पर शुरू करने के रूप में एनीमेशन का इलाज नहीं होगा। आप या तो जावास्क्रिप्ट या कच्चे एसवीजी स्रोत के माध्यम से ऐसा कर सकते हैं।

  2. beginElement()SVGAnimationElement उदाहरण (<animate> तत्व) पर जब आप एनीमेशन शुरू करने के लिए तैयार हों तो कॉल करें। अपने उपयोग के मामले के लिए, जब आप तैयार हों, तो इस विधि को आमंत्रित करने के लिए मानक addEventListener() कॉलबैक का उपयोग करें, उदा।

    myAnimationElement.addEventListener('mySpecialEvent',function(){ 
        myAnimationElement.beginElement(); 
    },false); 
    
+0

बहुत बहुत धन्यवाद जो मुझे – Hendekagon

+1

ग्रेट के बारे में जानने की ज़रूरत है। असल में, बस 'startElement()' को कॉल करने से भी नौकरी मिल गई। –

+0

दुर्भाग्यवश, आईई पर काम नहीं करता है: "ऑब्जेक्ट संपत्ति या विधि का समर्थन नहीं करता है 'startElement'" – Starwave

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