2013-03-12 4 views
9

का उपयोग कर राफेल में कैनवास पृष्ठभूमि रंग का उपयोग करें मैं पृष्ठभूमि रंग को एक विशिष्ट रंग में सेट करना चाहता हूं। मैं निम्नलिखित कोड का उपयोग करता हूं:परिवर्तनीय कागज

//JavaScript Code 
var paper = Raphael(200, 350, 320, 200); 
paper.attr("fill", "#f00"); 

किसी भी तरह, यह कोड काम नहीं करता है। कृपया मदद करें, मैं कागज के पृष्ठभूमि रंग को कैसे सेट कर सकता हूं?

उत्तर

3

एक बेहतर तरीका के लिए नीचे दिए गए जवाब देखें, लेकिन आप एक आयत है कि पूरे कैनवास क्षेत्र भरता बना सकते हैं:

var paper = Raphael(200, 350, 320, 200); 
var rect = paper.rect(0, 0, 320, 200); 
rect.attr("fill", "#f00"); 
rect.attr("stroke", "#f00"); 
24

वास्तव में, यह एक एसवीजी कैनवास के लिए पृष्ठभूमि रंग सेट करने के लिए पूरी तरह संभव है - यहां चेतावनी यह है कि, हालांकि राफेल कैनवास के अंदर के सभी तत्वों को नियंत्रित करता है, लेकिन यह कैनवास पर सीधे बहुत कम स्टाइलिस्ट नियंत्रण प्रदान करता है।

सौभाग्य से, आप अपने कैनवास संपत्ति के माध्यम से राफेल पेपर ऑब्जेक्ट से जुड़े डोम नोड तक पहुंच प्राप्त कर सकते हैं। यही कारण है कि यह आसान इस तरह काम करने के लिए बनाता है:

var paper = Raphael(200, 350, 320, 200); 
paper.canvas.style.backgroundColor = '#F00'; 

अभी तक बेहतर, आप अपने आवेदन के स्टाइलशीट के तहत आपके कैनवास पृष्ठभूमि/सीमा/गद्दी निर्धारित कर सकते हैं, और फिर बस यह सुनिश्चित कर लें कैनवास उचित उपयोग करने के लिए सेट कर दिया जाता शैली:

var paper = Raphael(200, 350, 320, 200); 
paper.canvas.className += ' my_svg_class'; 
+3

+1 दोनों पूरी तरह से वीएमएल मोड के साथ-साथ एसवीजी (IE8 और IE7 दोनों पर) में काम करते हैं। ** http: //jsbin.com/uYilUqe/2/edit** आश्चर्यजनक रूप से, '.className' विधि मेरे लिए क्रोम या फ़ायरफ़ॉक्स (या IE9 और IE10) में काम नहीं करती है, लेकिन काम करता है आईई 7 और आईई 8 में। मैंने पुरानी आईई में कुछ काम कभी नहीं देखा है लेकिन पहले मानक ब्राउज़र में नहीं ... – user568458

+2

@ user568458 मुझे एक ही समस्या थी, लेकिन स्पष्ट रूप से इसे 'बेसवेल' फ़ील्ड सेट करके आधुनिक ब्राउज़र में भी काम किया जा सकता है: 'paper.canvas.className.baseVal + =" my_svg_class "' ' – easuter