मैं एक बॉक्स (रेक्ट?) कैसे बना सकता हूं जो एसवीजी का उपयोग कर इसके अंदर के पाठ को फिट करने के लिए स्वयं का आकार बदलता है?मैं एसवीजी के साथ पाठ के चारों ओर एक बॉक्स कैसे आकर्षित कर सकता हूं?
उत्तर
क्षमा करें, जवाब मुझे इतना लंबा लगा, लेकिन मैं सीख रहा था कि एक XML डोम के साथ ईसीएमएस्क्रिप्ट का उपयोग कैसे करें।
ठीक है। तो तुम इतनी तरह अपने दस्तावेज़ संरचना है लगता है:
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="800"
height="600"
id="example_text">
<g id="layer1">
<text
x="123.4"
y="567.8"
id="text_holder">
<tspan id="tspan1">Text</tspan>
<tspan id="tspan2">More text</tspan>
</text>
</g>
<script type="text/ecmascript">
function create_from_rect (client_rect, offset_px) {
if (! offset_px) {offset_px=0;}
var box = document.createElementNS(
document.rootElement.namespaceURI,
'rect'
);
if (client_rect) {
box.setAttribute('x', client_rect.left - offset_px);
box.setAttribute('y', client_rect.top - offset_px);
box.setAttribute('width', client_rect.width + offset_px * 2);
box.setAttribute('height', client_rect.height + offset_px * 2);
}
return box;
}
function add_bounding_box (text_id, padding) {
var text_elem = document.getElementById(text_id);
if (text_elem) {
var f = text_elem.getClientRects();
if (f) {
var bbox = create_from_rect(f[0], padding);
bbox.setAttribute(
'style',
'fill: none;'+
'stroke: black;'+
'stroke-width: 0.5px;'
);
text_elem.parentNode.appendChild(bbox);
}
}
}
add_bounding_box('text_holder', 5);
</script>
</svg>
जड़ <svg>
तत्व यह एक वेब पेज पर बाद यह यह ऊपर डोम संरचना बनाई है निष्पादित करने के लिए, बस जावास्क्रिप्ट तरह का कारण बनता है के तल पर <script>
टैग को जोड़ने से।
के साथ अच्छा उदाहरण धन्यवाद, मैं आपके उत्तर से बेहद प्रभावित हूं। मुझे उम्मीद से पूरा करने के लिए यह और अधिक काम है। –
मुझे यह जोड़ना चाहिए कि मैंने फ़ायरफ़ॉक्स में प्रदर्शित होने पर यह कोशिश की और यह काम करता है, लेकिन मुझे क्रोम में काम करने में परेशानी हो रही है। – amphetamachine
क्या निम्न दृष्टिकोण चीजों को आसान बना देगा?
var text_elem = document.getElementById(text_id);
var bbox = text_elem.getBBox();
और फिर एक आयत खींचने के लिए बॉक्स की चौड़ाई और ऊंचाई का उपयोग करें?
क्या आप समझा सकते हैं कि इससे यह आसान कैसे होगा? मैं आपके द्वारा प्रदान किए गए कोड का उपयोग कैसे करूं? –
जब तक कि मैं आपको सही ढंग से समझ नहीं पा रहा हूं, आप जो भी करना चाहते हैं वह पाठ के चारों ओर एक आयताकार खींचता है, इसलिए आयत को टेक्स्ट तत्व के एक्स, वाई और बॉक्स की चौड़ाई और ऊंचाई के साथ ही तैयार किया जाना चाहिए। मैंने कोड का परीक्षण नहीं किया है, लेकिन मुझे लगता है कि यह अनुमान लगाएगा कि बीबॉक्स के लिए जांच न करना आवश्यक नहीं होगा। जब मैंने कहा कि मेरा दृष्टिकोण चीजों को सरल बनायेगा तो मैं अत्यधिक आशावादी था; यह नाटकीय रूप से नहीं, बल्कि होगा – JamieJag
- 1. मैं एक WPF लेबल में पाठ के चारों ओर मार्जिन कैसे हटा सकता हूं?
- 2. गोलाकार कोनों के चारों ओर बॉक्स छाया?
- 3. मैं एक आयताकार छवि के चारों ओर पाठ कैसे लपेट सकता हूं?
- 4. पाठ के चारों ओर बॉर्डर चादर है
- 5. एडब्ल्यूटी में पाठ के चारों ओर एक रूपरेखा कैसे आकर्षित करें?
- 6. एक छवि के चारों ओर पाठ लपेटने के लिए कैसे?
- 7. लेटेक्स: टेक्स्ट के चारों ओर बॉक्स को कैसे आकर्षित करें जिसमें वर्बैटिम ब्लॉक होता है
- 8. मैं नीचे-दाएं div के चारों ओर पाठ कैसे लपेट सकता हूं?
- 9. मैं पाठ को कैसे आकर्षित करूं जो ऊपर और नीचे दाईं ओर ऑब्जेक्ट्स के चारों ओर बहती है?
- 10. मैं सी कोड के चारों ओर एक प्रबंधित रैपर का परीक्षण कैसे कर सकता हूं?
- 11. आईओएस पर टेक्स्ट रैपिंग के साथ मैं छवि कैसे आकर्षित कर सकता हूं?
- 12. लपेटें jQuery में कुछ पाठ के चारों ओर एक अवधि
- 13. JTextPane में घटकों के चारों ओर पाठ कैसे लपेटें?
- 14. मैं जेबटन के किनारे के चारों ओर एक अंतर कैसे जोड़ सकता हूं?
- 15. एंड्रॉइड: इसके चारों ओर छाया के बिना संवाद बॉक्स
- 16. मैं डब्ल्यूपीएफ में एक छवि के चारों ओर एक सीमा कैसे लगा सकता हूं?
- 17. एंड्रॉइड, मैं एक निश्चित बिंदु के चारों ओर एक तीर (छवि) कैसे घुमा सकता हूं?
- 18. तीन.जेएस - मैं एक विशिष्ट बिंदु के चारों ओर एक सिलेंडर कैसे घुमा सकता हूं?
- 19. मैं जावा में चारों ओर एक स्काला ऑब्जेक्ट संदर्भ कैसे पारित कर सकता हूं?
- 20. एचटीएमएल फॉर्म में पाठ इनपुट के चारों ओर सीमा
- 21. उद्धरण के साथ चारों ओर स्ट्रिंग
- 22. छवि के चारों ओर सफेद स्थान
- 23. WinForms बटन में पाठ के चारों ओर पैडिंग कम करें
- 24. छवियों के चारों ओर पाठ और ब्लॉक तत्वों को लपेटना
- 25. पाठ रैप केंद्रित चारों ओर छवि
- 26. मैं स्रोत के बिना किसी छवि के चारों ओर सीमा को कैसे हटा सकता हूं?
- 27. सूची बॉक्स के चारों ओर अतिरिक्त स्पेस निकालें
- 28. परिवर्तनीय '' के चारों ओर ढेर
- 29. Jqueryui: एक संवाद बॉक्स के चारों ओर एक छाया कैसे बनाना है?
- 30. ☆ केंद्र के चारों ओर स्पिन कैसे करें?
यह भी देखें: http://stackoverflow.com/questions/2938779/svg-scaling-text-to-fit-container –
उस प्रश्न में उल्लिखित व्यूपोर्ट विशेषता का उत्तर यहां दिए गए कुछ भी नहीं है। –
bbox https://bl.ocks.org/mbostock/1160929 – marioosh