如果文本不適合可用寬度且需要截斷,是否可以在文本末尾有省略號的畫布上繪製文本?謝謝。HTML畫布文本溢出省略號
9
A
回答
0
html5的drawText沒有這樣的東西,實現起來會有點複雜。您需要循環修剪字符串,直到符合所需的大小。 如果文字不旋轉或者有其他特殊效果,我會建議使用帶有絕對位置的正常股利和下面的CSS樣式:
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
13
沒有標準功能。
因爲我需要一個,我做了這個小功能,計算最適合的字符串:
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
是2D背景。
可以正常已經設置字體和畫布的其他繪圖參數後得出的字符串:
c.fillText(fittingString(c, "A big string that will likely be truncated", 100), 50, 50);
0
有幾個瀏覽器 - 不支持多行文字渲染相關的技術。
這就是爲什麼我開發了一個小型圖書館來處理這個問題(等等)。該庫提供對象來建模和執行字母級別的文本渲染。這應該只是你所需要的:
閱讀更多在http://www.samuelrossille.com/home/jstext截圖,教程和下載鏈接。
相關問題
- 1. 文本溢出省略號
- 2. 文本溢出省略號
- 3. 文本溢出省略號不工作
- 4. 獲取文本溢出:省略號後
- 5. CSS文本溢出前置省略號
- 6. CSS覆蓋文本溢出:省略號
- 7. CSS - 文本溢出:省略號修復
- 8. 文本溢出問題:省略號
- 9. 左側的文本溢出省略號
- 10. 文本溢出省略號與表
- 11. 問題與溢出:隱藏和文本溢出:省略號
- 12. 三點 - 溢出:省略號
- 13. 文本溢出:省略號跳到Android上的文本後面
- 14. text-overflow:ellipsis;不截斷溢出的文本,並給出省略號
- 15. 截取文本溢出的多行文字:省略號
- 16. 在文本溢出省略號後面放置圖標
- 17. 文本溢出:省略號不能使用某些字體?
- 18. DIV內部的SPAN可以防止文本溢出:省略號
- 19. 文本溢出:省略號不能在th元素上工作
- 20. 文本溢出:省略號不能在chrome中工作61.0.3163.100
- 21. 文本溢出省略號和flex在Firefox上不工作
- 22. 檢測CSS文本溢出:Firefox中的省略號
- 23. 如何在Firefox中模仿文本溢出:省略號?
- 24. 文本溢出:省略號的第一線時,換行符
- 25. CSS文本溢出省略號顯示不正確
- 26. 文本溢出省略號自動換行後
- 27. 文本溢出:省略號不工作的編輯DIV
- 28. 文本溢出省略號與幾個跨度
- 29. 文本溢出:省略號表細胞無寬度
- 30. 在Mozilla中,文本溢出:省略號不起作用