渲染

2013-10-08 94 views
5

之前獲取文本的寬度在SVG我想提出一個矩形圍繞SVG文本。 我知道文本的高度(text元素的font-size屬性)。但寬度取決於實際內容。應該使用getBBox()getComputedTextLength()。但是這隻在渲染後才起作用。渲染

是否有指定以其他方式呢?例如,定義相對於其他值的xwidth屬性?我在SVG Spec中沒有找到類似的東西。

+0

這有什麼錯渲染之後測量呢? –

+0

@RobertLongson代碼複雜性和視覺跳躍。我正在動態生成整個文檔。應準備好所有對象,然後將其添加到文檔中,然後進行渲染。在渲染後計算時,我必須渲染未完成的對象,然後在渲染後更改它們。這會導致視覺跳躍。 – radlan

+0

將您的代碼添加到問題中?您是否試圖獲取尚未插入文檔的元素的bbox和文本長度? –

回答

0

搞清楚其中的文本結束大概需要大致相同的底層代碼路徑渲染本身實現 - 通過基於字體和樣式等每個字符的寬度會......由於我不知道SVG標準定義了直接獲取這些信息而不進行實際完整渲染的方法,直到這些方法出現或由其他人在此報告,則該方法應該是在進行實際渲染之前不可見地渲染。

你可以做,在一個隱藏層(z-index的,不透明度和東西),或可見視,無論在實驗中效果最好的外部。你只需要獲得瀏覽器進行呈現給找出來,這樣你無形中渲染爲目的,然後使用getComputedTextLength()