तो, समस्या वास्तव में है कैसे एचटीएमएल 5 कैनवास में शब्द-रैपिंग करना है:
यह कुछ मानक HTML तत्व है जो पाठ पकड़ परिवर्तित करने के लिए सभी है और/या एचटीएमएल 5 कैनवास में एक फोटो। और दुर्भाग्यवश, '.fillText()' विधि के लिए पाठ के टुकड़े को तोड़ने के लिए पर्याप्त स्मार्ट नहीं है, इसलिए मुझे प्रत्येक पंक्ति का "मैन्युअल रूप से" पता लगाने की आवश्यकता है।
आप क्या कर सकते हैं measureText
बाद में एक शब्द जोड़ना। पहले शब्द को मापें, और यदि यह आपके कंटेनर की चौड़ाई (ctx2d.measureText(words).width <= containerWidth
) पर फिट बैठता है, तो आप एक और शब्द जोड़ सकते हैं और फिर माप सकते हैं। जब तक शब्दों की स्ट्रिंग फिट नहीं होती है। यदि ऐसा नहीं होता है - तो आपको अगली पंक्ति पर fillText
करना होगा।
मैन्युअल डाला पंक्ति विराम का सवाल है, वे विशेष रूप से या तो textareas में \n
या \r
पात्रों द्वारा या HTML तत्व, <br \>
तरह से HTML में प्रतिनिधित्व कर रहे हैं,। इस प्रकार, पाठ को मापने से पहले आप अनुच्छेदों द्वारा इसे विभाजित करना चाहते हैं।
textareas में:
var paragraphs = textarea.value.split('\n');
गैर प्रपत्र तत्वों में:
var paragraphs = [];
// getting all <p> and elements in a typical HTML element
// as well as individual text nodes (they are just DOM-nodes),
// separated by <br /> elements
var innerNodes = nonFormElement.childNodes;
for (var i = 0, len = innerNodes.length; i += 1) {
// if a sub-element has some text in it,
// add the text to our list
var content = innerNodes[i].textContent;
if (content) {
paragraphs.push(content);
}
}
[। यह कुछ मदद की हो सकती है] (http://stackoverflow.com/questions/320184/how- टू-स्टॉप-लांग-शब्द-टू-ब्रेकिंग-माय-डिव) – xan
या http://stackoverflow.com/questions/4719777/finding-line-breaks-in-textarea-that-is-word-wrapping-arabic- पाठ – Theo
आप अंत में क्या करने की कोशिश कर रहे हैं? – katspaugh