2016-04-09 3 views
0

私はd3.jsを使用しており、文字列サイズを計算するにはまず文字列をDOMに追加し、textContainer.node().getBBox()を呼び出して幅と高さを取得します。レンダリングせずに文字列サイズを計算する

しかし、d3.jsや他のjsライブラリを使用して文字列をレンダリングせずに文字列サイズを取得することは可能ですか?

+0

DOMのレンダリングは、コールスタックの現在のコードが完了した後にのみ*発生します。 DOMにテキストを追加し、境界ボックスを取得して直後に削除すると、レンダリングされません。 – altocumulus

+0

それは私が実際にやっていることです。しかし、私は計算するテキストがたくさんある、それは本当に最適化されていません。ページをレンダリングするのに20秒かかりました:/ – 03t02

+0

レンダリングされないので、あなたの質問は何ですか? – altocumulus

答えて

0

正しい出力を得るためには、font、sizeなど(CSSのように)指定する必要があり、その結果はサブピクセルである可能性があるので、正確にはctx.measureTextの機能があります。

+0

私はドキュメントを読んだだけです。この機能はタグでのみ動作するようですか? の機能はありますか? – 03t02

+0

いいえ、1つではありませんが、JavaScriptを使用してキャンバスを作成し、それをドキュメントに添付しないでください。そのため、レンダリングしません。申し訳ありませんが、キャンバス以外でレンダリングされることなく文字列幅をテストする方法はありません。 – Akxe

関連する問題