テキストが使用可能な幅に収まらず、切り捨てられる必要がある場合は、テキストの最後に省略記号が付いたキャンバスにテキストを描画できますか?ありがとう。html canvas text overflow省略記号
9
A
答えて
0
html5 drawTextにはこのようなことはなく、実装するには少し複雑です。目的のサイズに収まるまで文字列をトリミングするにはループが必要です。 テキストを回転またはその他の特殊効果を持っていない場合、私は絶対位置と、次のCSSスタイルで、通常のdiv要素を使用することをお勧め:
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
13
標準的な機能はありません。私は1つを必要に応じて
は、私は最高のフィッティング文字列を計算し、この小さな関数を作った:c
は、2Dコンテキストをある
function fittingString(c, str, maxWidth) {
var width = c.measureText(str).width;
var ellipsis = '…';
var ellipsisWidth = c.measureText(ellipsis).width;
if (width<=maxWidth || width<=ellipsisWidth) {
return str;
} else {
var len = str.length;
while (width>=maxWidth-ellipsisWidth && len-->0) {
str = str.substring(0, len);
width = c.measureText(str).width;
}
return str+ellipsis;
}
}
。
あなたのフォントとキャンバスの他の描画パラメータを設定した後、通常の文字列を描画することができます
c.fillText(fittingString(c, "A big string that will likely be truncated", 100), 50, 50);
0
をいくつかのブラウザがあります - 複数行のテキストレンダリングをサポートしていない関連技術は。
私はこの問題に取り組むために小さなライブラリを開発しました。ライブラリは、文字レベルのテキストレンダリングをモデル化して実行するためのオブジェクトを提供します。これはあなたが必要とするものだけを行う必要があります:
http://www.samuelrossille.com/home/jstextのスクリーンショット、チュートリアル、およびダウロードのリンクについては、こちらをご覧ください。
関連する問題
- 1. text-overflow:リンク上の省略記号
- 2. mozillaでは、text-overflow:省略記号は機能しません。
- 3. "float:left"と "float:right" divの両方に "text-overflow:省略記号"を付けるには?
- 4. アイコン省略記号
- 5. 省略記号は
- 6. html入力フィールドでtext-overflow省略記号を使用するにはどうすればよいですか?
- 7. LR省略記号
- 8. jqgrid省略記号
- 9. テキストオーバーフロー:省略記号とフレックス
- 10. フレキシボックスラップとオーバーフロー省略記号
- 11. フレックス、テーブル、テキストオーバーフロー:省略記号
- 12. ブートストラップモードのテキストオーバーフロー省略記号
- 13. CSSオーバーライドテキストオーバーフロー:省略記号
- 14. CSSの省略記号
- 15. 省略記号フィルタvueJs
- 16. 省略記号のサイズ
- 17. text-overflow:white-spaceなしの省略記号:nowrap?
- 18. text-overflow:Firefox 4の省略記号ですか? (およびFF5)
- 19. 空白文字の代わり:text-overflowを使用するときの空白:省略記号
- 20. text-overflowを作ることは可能ですか?cssのみのselectの省略記号?
- 21. リストオーバーフロー;テキストオーバーフローを行う:省略記号。
- 22. テキストオーバーフロー:表示付き省略記号:フレックス
- 23. re.sub()はPython 3の省略記号
- 24. インライン要素を含む省略記号?
- 25. ブートストラップ省略記号は、ここで
- 26. css省略記号、3ドットホバリングのイベント
- 27. 省略記号のリストコードスニペットの説明Swift
- 28. バリデーションマクロ - 省略記号の前のカンマ?
- 29. リストから省略記号(...)を作成
- 30. テキストオーバーフロー省略記号ワードラップの後