Có thể vẽ văn bản trên một canvas có một dấu chấm lửng ở phần cuối của văn bản nếu văn bản sẽ không phù hợp trong chiều rộng có sẵn và cần phải được cắt ngắn? Cảm ơn.html text vải tràn lược
Trả lời
Không có điều như vậy cho html5 drawText và sẽ là một chút phức tạp để thực hiện. Bạn sẽ cần lặp để cắt chuỗi cho đến khi phù hợp trong kích thước mong muốn. Nếu văn bản là không xoay hoặc có bất kỳ hiệu ứng đặc biệt khác, tôi sẽ đề nghị sử dụng một div bình thường với vị trí tuyệt đối và phong cách CSS sau:
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
Không có chức năng tiêu chuẩn.
Như tôi cần một, tôi đã thực hiện chức năng này nhỏ mà tính chuỗi phù hợp tốt nhất:
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;
}
}
nơi c
là bối cảnh 2D.
Bạn có thể vẽ các chuỗi bình thường sau khi đã thiết lập phông chữ của bạn và các thông số bản vẽ khác của canvas của bạn:
c.fillText(fittingString(c, "A big string that will likely be truncated", 100), 50, 50);
Có một vài trình duyệt - công nghệ liên quan mà không hỗ trợ nhiều dòng text rendering.
Đó là lý do tại sao tôi đã phát triển một thư viện nhỏ để đối phó với vấn đề này (trong số những người khác). Thư viện cung cấp các đối tượng modelize và thực hiện việc vẽ chữ thư cấp. Điều này sẽ làm chỉ là những gì bạn cần:
Đọc thêm tại http://www.samuelrossille.com/home/jstext cho ảnh chụp màn hình, hướng dẫn, và link dowload.
- 1. làm html text unselectable
- 2. valign vs text-align trong HTML
- 3. Performance text/html vs application/json
- 4. Cách đặt HTML vào jQuery .text()
- 5. Phóng to giao diện người dùng trên vải HTML
- 6. hướng dẫn cho chức năng hồ quang của vải HTML
- 7. Sử dụng lấp đầy chẵn lẻ trên vải HTML
- 8. MVC3 cách sử dụng @<text></text> làm thông số trợ giúp html
- 9. HTML - Đặt nội dung thẻ SELECT vào INPUT type = "text"
- 10. HTML \ rich text trong tiêu đề nút của Drupal?
- 11. Force div để cuộn nếu văn bản tràn HTML/CSS?
- 12. Thẻ tập lệnh html không sử dụng loại javascript <script type = "text/html">?
- 13. Làm cách nào để sử dụng dấu chấm lửng tràn văn bản trong trường nhập html?
- 14. khách hàng tìm thấy kiểu nội dung phản ứng của 'text/html', nhưng dự kiến 'text/xml'
- 15. Dịch một vải html5
- 16. Mật khẩu vải
- 17. đăng nhập vải python
- 18. Java Swing Text Editor
- 19. Vị trí tuyệt đối và tràn tràn trong CSS
- 20. Trích xuất "tràn" CSS "màu nền"
- 21. Kiểm tra tràn/tràn trong C++?
- 22. Vẽ SVG trên vải Kivy
- 23. Vải tương đương trong Haskell?
- 24. Index Vải (lớp Patricia Trie)
- 25. vải và svn mật khẩu
- 26. Lật một ảnh trong vải
- 27. Ẩn SPAN tràn
- 28. jquery-ui tab tràn nội dung chứa
- 29. Chiến lược Python để trích xuất văn bản từ các trang html không đúng định dạng
- 30. Sự khác biệt giữa android: text = "@ string" và android: text = "..."