JavaScript を使用して文字列の幅を計算することは、特に等幅以外の書体を使用する場合にはすぐには簡単ではありません。ここでは、HTML 5 の Canvas.measureText メソッドを使用した解決策を検討します。
Canvas.measureText を使用するには、キャンバス コンテキストを作成して割り当てます。希望のフォントスタイル。次に、measureText メソッドを使用して、指定されたテキストの幅を測定します。
function getTextWidth(text, font) { const canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas")); const context = canvas.getContext("2d"); context.font = font; const metrics = context.measureText(text); return metrics.width; }
たとえば、「こんにちは!」の幅を計算するには、 「太字 12pt arial」フォントでは、次のことができます:
console.log(getTextWidth("hello there!", "bold 12pt arial")); // close to 86
特定の要素のフォント サイズを使用したい場合は、getCanvasFont を使用できます。ユーティリティ関数:
const fontSize = getTextWidth(text, getCanvasFont(myEl));
DOM ベースのメソッドと比較して、Canvas メソッドにはいくつかの利点があります。
jsperf ベンチマークは、Canvas メソッドとキャッシュ DOM ベースのメソッドは同様のパフォーマンスを持っていますが、Firefox では Canvas メソッドの方が著しく高速です。
以上がCanvas メソッドを使用して JavaScript でテキストの幅を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。