2009-09-18 14 views
5

मैं एक ऐसा पृष्ठ बना रहा हूं जो वस्तुओं (छवि/आकार/div) को एनिमेट करेगा और स्क्रीन के चारों ओर तैर जाएगा। कभी-कभी बड़ी संख्या में ऑब्जेक्ट्स फ़्लोटिंग और इंटरैक्टिंग हो सकती हैं। रूप में वे एक एक आईडी होगाएनीमेशन: jQuery या राफेल?

एक आवश्यकता है, प्रत्येक वस्तु से संबद्ध डेटा है। इसलिए, यदि मैं एक ऑब्जेक्ट पर क्लिक करता हूं, तो वह उस आईडी को पकड़ सकता है, फिर उस ऑब्जेक्ट के बारे में डेटा रखने वाले सरणी को संदर्भित करता है।

मेरे बहस, अगर मैं jQuery $ .animate समारोह का उपयोग करें या राफेल का उपयोग करना चाहिए है। मुझे पता है कि एसवीजी का उपयोग करना अच्छा होगा, लेकिन मुझे यकीन नहीं है कि अगर मैं प्रत्येक ऑब्जेक्ट और आईडी दे सकता हूं, तो संबंधित डेटा ऑनक्लिक युक्त एक div लाएं। एसवीजी तत्वों संदर्भ डीओएम तत्वों पर क्लिक कर सकते हैं? गतिशील पाठ के साथ एसवीजी कितना अच्छा काम करता है? मैं इस बात से भी चिंतित हूं कि एनीमेशन कितनी प्रोसेसिंग शक्ति लेगा। क्या इस संबंध में कोई बेहतर विकल्प है?

बीटीडब्ल्यू, मैं यहां jQuery एसवीजी के बारे में कोई बात नहीं कर रहा हूं, बस सामान्य jQuery और डोम।

किसी को भी इस में किसी भी जानकारी है, या सुझाव वे बहुत सराहना की जाएगी तो!

+0

बस एक क्विक नोट के रूप में - यह एचटीएमएल 5 और कैनवास (किसी भी बिंदु पर क्लिक करें) के साथ संभव है: http://9elements.com/io/ परियोजनाओं/एचटीएमएल 5/कैनवास/ – Mottie

+0

इसके अलावा, कैनवास तेजी से होने लगता है कि यह मूल रूप से ओएस ड्राइंग एपीआई पर एक पतली परत है। हालांकि, कैनवास डीओएम के रूप में एसवीजी के रूप में पूरी तरह से खुलासा नहीं है। – user120242

+0

@ धुंध - हाँ, मैंने उस डेमो को देखा है। मुझे सच में नहीं लगता कि क्लिक पर आने वाली टिप्पणी वास्तव में आपके द्वारा क्लिक किए जाने वाले डॉट के साथ कुछ भी करने के लिए है। वे सिर्फ एक बिंदु को सौंपा जाने के बजाय यादृच्छिक रूप से चुने जाते हैं। बहुत यकीन है कि यह मामला है। –

उत्तर

0

हां। सभी ग्राफिकल ऑब्जेक्ट्स को डोम ऑब्जेक्ट्स के रूप में जोड़ा जाता है।

एक डेमो: http://raphaeljs.com/github/impact.html

सरल डेमो कोड है कि एक चक्र खींचता है, एक आईडी प्रदान करती है, और एक ऑनक्लिक ईवेंट देता:

var paper = Raphael(10, 50, 320, 200); 
// Creates circle at x = 50, y = 40, with radius 10 
var circle = paper.circle(50, 40, 10); 
// Sets the fill attribute of the circle to red (#f00) 
circle.attr("fill", "#f00"); 
// Sets the stroke attribute of the circle to white (#fff) 
circle.attr("stroke", "#fff"); 
//assign circle id="lolcats" 
circle.node.id="lolcats"; 
//onclick alert id 
circle.node.onclick=function(){alert(this.id)}; 

आप कल्पना वेक्टर ड्राइंग और जोड़तोड़ करने के लिए की जरूरत है, राफेल होगा अच्छा बनो। यदि नहीं, तो आप जो भी जानते हैं उसका उपयोग कर सकते हैं। इसके अलावा, आप एक ही समय में jQuery और राफेल दोनों का उपयोग कर सकते हैं।
हालांकि इसकी आवाज़ से, jQuery आपकी आवश्यकताओं के लिए पर्याप्त होना चाहिए।

+0

हाँ, मुझे वास्तव में वेक्टर चित्रों को करने की आवश्यकता नहीं है। अभी मैं ज्यादातर गति के बारे में चिंतित हूं, और स्क्रीन पर कितनी ऑब्जेक्ट्स हो सकती हैं। और, उस पर आधारित जो मेरा सबसे अच्छा समाधान होगा। अभी के लिए, मैं सिर्फ jQuery के साथ रहूंगा और देख सकता हूं कि मैं किसी भी सीमा में भाग लेता हूं या नहीं। धन्यवाद। –

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