Không có thuộc tính cho gói văn bản, nhưng có một mẹo đơn giản mà bạn có thể sử dụng. Thêm một từ tại một thời điểm vào đối tượng văn bản và khi nó quá rộng, hãy thêm nguồn cấp dữ liệu dòng. Bạn có thể sử dụng hàm getBBox() để xác định chiều rộng. Về cơ bản, bạn mô phỏng một máy đánh chữ cũ thời. Đây là một mẫu của một số mã sẽ làm điều này cho bạn. Bạn có thể dễ dàng biến điều này thành một hàm đơn giản có văn bản và chiều rộng.
var r = Raphael(500, 500);
var t = r.text(100, 100).attr('text-anchor', 'start');
var maxWidth = 100;
var content = "Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. ";
var words = content.split(" ");
var tempText = "";
for (var i=0; i<words.length; i++) {
t.attr("text", tempText + " " + words[i]);
if (t.getBBox().width > maxWidth) {
tempText += "\n" + words[i];
} else {
tempText += " " + words[i];
}
}
t.attr("text", tempText.substring(1));
Thnx mate bạn đã lưu trong ngày! – chchrist
Tôi đã viết một thư viện về cơ bản chỉ có điều này, có tên là raphael-paragraph. Xem câu trả lời của tôi dưới đây. –