2012-04-30 57 views
5

你如何在RaphaelJS的包裝盒中包裝單詞?或者一般在基於瀏覽器的SVG中?拉斐爾的單詞包裹JS/SVG

我找到this thread就可以了,但沒有任何意義。他們說要使用「widthToCharNum」,但據我所知,這個線程是這些詞語在互聯網上唯一使用過的唯一地方。他們建議使用「寬度」屬性,但這不起作用。

回答

3

文本包裝不是內置於 Raphael或SVG規範。期。來自HTML世界,我發現沒有文字包裝非常令人震驚。

但是,你可以自己做,沒有太多的困難。有關詳細信息和示例,請參閱this question。不幸的是,你必須燒掉一些客戶端週期以使其動態工作。

0

tspan標籤可以給出自動換行的錯覺,但是沒有內置自動換行功能。

tspan標籤與文本標籤完全相同,但可以嵌套在文本標籤內部和內部。再加上'dy'屬性,這可以讓SVG 1.1中的自動換行錯覺。請注意,'dy'是相對於繪製的最後一個字形(字符)而言的。有一篇關於如何在http://tutorials.jenkov.com/svg/text-element.html上使用tspan的教程。

該文章在http://www.xml.com/pub/a/2002/09/11/quint.html也許是有用的。

+0

我沒有看到在任何這些地方提到的'dy'。它是什麼? –

1

svg.js庫有一個svg.textflow.js插件。這不是超速,但它有訣竅。它甚至將溢出的文本存儲在數據屬性中,以便您可以使用它創建連續流動的列。 Here the text flow example page

+0

這個例子看起來很棒,但圖書館似乎不再存在......我已經發送了一個msg給wout,看看他是否能澄清這是怎麼回事,因爲它看起來很有前途! – Siyfion

0

我知道現在有點遲來,但你可能對我的Raphael-paragraph項目感興趣。

這是一個小型庫,允許您創建具有最大寬度和高度限制,行高和文本樣式配置的自動包裝多行文本。它仍然是一個測試版,需要很多優化,但它應該適用於您的目的。

GitHub頁面上提供了使用示例和文檔。