मैंने एक एसवीजी फ़ाइल बनाई है जिसे मैं सीएसएस में पृष्ठभूमि छवि के रूप में उपयोग करना चाहता हूं। मैं रंग भरने इतना की तरह, एक प्रश्न-स्ट्रिंग पैरामीटर का उपयोग कर एसवीजी में परिवर्तित करने के लिए सक्षम होना चाहते हैं:एसवीजी क्वेरी-स्ट्रिंग पैरामीटर को समझना
#rect { background-image: url('rect.svg'); }
#rect.red { background-image: url('rect.svg?color=red'); }
मैं समझता हूँ के रूप में, एसवीजी में एक स्क्रिप्ट टैग का उपयोग कर, मैं color
पैरामीटर प्राप्त करने में सक्षम हूँ और भरने के रंग को अद्यतन करें। यहाँ एक उदाहरण एसवीजी है:
<!DOCTYPE svg PUBLIC "-//W3C//DDTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" />
<script>
<![CDATA[
var params = { };
location.href.split('?')[1].split('&').forEach(
function(i)
{
params[ i.split('=')[0] ] = i.split('=')[1];
}
);
if(params.color)
{
var rect = document.getElementsByTagName("rect")[0];
rect.setAttribute("fill", params.color);
}
]]>
</script>
</svg>
सीधे फाइल करने के लिए जा रहे हैं, या किसी वस्तु टैग काम करने के लिए लगता है का उपयोग करते हुए, लेकिन सीएसएस पृष्ठभूमि छवियों या img टैग के लिए, रंग पैरामीटर नजरअंदाज कर दिया है।
मुझे बिल्कुल यकीन नहीं है कि यहां क्या हो रहा है, और मैं उम्मीद कर रहा था कि मैं जो पूरा करने की कोशिश कर रहा हूं उसके लिए एक स्पष्टीकरण या वैकल्पिक समाधान होगा (अधिमानतः सर्वर-साइड प्रसंस्करण का उपयोग किए बिना)।
यहाँ एक jsFiddle विभिन्न तरीकों प्रस्तुत करना दिखा है: http://jsfiddle.net/ehb7S/
जावास्क्रिप्ट अक्षम है जब एसवीजी का उपयोग सीएसएस पृष्ठभूमि छवि या छवि टैग में किया जाता है। –
आह, यह बताता है कि यह क्यों काम नहीं करता है। सीएसएस के माध्यम से एसवीजी को पैरामीटर पास करने के लिए कोई अन्य चालाक समाधान होने पर मैं इसे खोल दूंगा, लेकिन ऐसा लगता है कि मैं इस पर भाग्य से बाहर हो सकता हूं। – Quantastical
svg के बाहर कुछ जेएस का उपयोग क्यों नहीं करें? – mihai