Czy jest możliwe narysowanie tekstu na kanwie z elipsą na końcu tekstu, jeśli tekst nie mieści się w dostępnej szerokości i musi zostać obcięty? Dzięki.html przepełnienie tekstu na płótnie ellipsis
Odpowiedz
Nie ma czegoś takiego dla html5 drawText i byłoby nieco skomplikowane do wdrożenia. Będziesz potrzebował pętli do przycinania sznurka, aż pasuje w pożądanym rozmiarze. Jeżeli tekst nie jest obracany lub ma żadnego innego efektu specjalnego, proponuję użyć normalnego div z pozycji absolutnej i następujący styl CSS:
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
width: 100%;
Nie ma standardowej funkcji.
Kiedy potrzebowałem, zrobiłem ten mały funkcję, która oblicza najlepszą ciąg zabudowy:
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;
}
}
gdzie c
jest kontekst 2D.
można narysować ciąg normalnie po ustawieniu czcionki i inne parametry rysunek płótnie:
c.fillText(fittingString(c, "A big string that will likely be truncated", 100), 50, 50);
Istnieje kilka przeglądarek - technologie związane, które nie obsługują renderowania tekstu wielu linii.
Dlatego opracowałem małą bibliotekę, aby poradzić sobie z tym problemem (między innymi). Biblioteka udostępnia obiekty do modelowania i wykonywania renderowania tekstu na poziomie litery. Powinno to zrobić dokładnie to, czego potrzebujesz:
Przeczytaj więcej na stronie http://www.samuelrossille.com/home/jstext, aby uzyskać zrzut ekranu, samouczek i link do pobrania.
- 1. Przepełnienie tekstu: wielokropek na łączu
- 2. Czy przepełnienie tekstu CSS: ellipsis działa na znacznikach Anchor?
- 3. Rysowanie tekstu na płótnie
- 4. Html na płótnie?
- 5. pomiar tekstu na skalowanym płótnie
- 6. HTML/CSS Ellipsis (...) nie działa
- 7. Dziwne HTML Antialiasing na płótnie
- 8. przenoszenie obrazu na płótnie html
- 9. Przepełnienie tekstu w elipsie na dynamicznym elemencie szerokości
- 10. Jak uzyskać wpisywanie tekstu na płótnie?
- 11. Przepełnienie dla koloru tła tekstu
- 12. jak dodać trzy kropki do tekstu, gdy przepełnienie w html?
- 13. Pozycja tekstu na płótnie różni się w FireFox i Chrome
- 14. Ellipsis z przepełnieniem tekstu nie działa z dynamiczną szerokością
- 15. Zawijanie długiego tekstu na płótnie z systemem Android
- 16. css przepełnienie - tylko 1 wiersz tekstu
- 17. Programowo utworzyć TextView z ellipsis
- 18. HTML 5 płótnie zachowanie unikać nakładania na wypełnienie
- 19. Zmiana koloru obrysu w płótnie HTML 5
- 20. Zastosuj "text-overflow: ellipsis;" do wewnętrznej div
- 21. Przewijanie na dużym płótnie
- 22. Rysowanie na płótnie% element
- 23. Układanie bitmapy na płótnie
- 24. Wyświetlanie svg na płótnie
- 25. Niepoprawny tekst na płótnie
- 26. Podkładka na płótnie Chart.js
- 27. Rozciągnij obraz na płótnie
- 28. Rysowalny obraz na płótnie
- 29. Przepełnienie: Widoczne na SVG
- 30. Czy możliwe jest przepełnienie tekstu: elipsa do wyboru tylko z css?