簡體   English   中英

Fabric JS文本限制

[英]Fabric js text restrictions

我如何在fabric.js中實現這一目標?

文本限制:1)-如果用戶在可用的文本框中鍵入過多的文本,則不應允許他們輸入,並且應顯示一條消息,告訴他們選擇其他消息或找到其他字體。 找到了答案。

請幫我還還2

2)-如果用戶鍵入一條消息,該消息的兩側文本框中還有很多空間,則文本框的大小應調整為文本的1mm以內。 我想這是在文本框帶有虛線邊框的情況下。 還要注意,背景圖案不會出現在文本框下方,這是另一個原因,如果文本不能填滿寬度,則需要縮短文本框(這樣才能顯示更多背景)。

3)-客戶始終希望最大化文本框的整個高度,以使字母的頂部始終接觸頂部,字母的底部始終接觸底部,無論大小寫混合而且不管字母是否有尾巴。
以下是一些說明需要發生的情況的示例(請仔細閱讀列表末尾以正確理解):
“ HELLO”一詞-所有字母都將觸及頂部和底部
“你好”一詞–“ H”和“ ll”將觸及頂部和底部
“ aaaa”一詞-即使小寫字母也會觸及頂部和底部
單詞“ aaah” –“ h”將觸及頂部和底部,而“ aaa”將觸及底部
“大”一詞–因為“ g”下降,“ g”將觸底,但
“ bi”不會。 該單詞實際上很小,因為“ b”將觸摸頂部但不觸摸底部,“ g”將觸摸底部但不觸摸頂部,而“ i”也將不觸摸任何一個。

對於問題2,您需要趕上事件,

然后在函數中,您應該獲取文本框的寬度和實際文本的寬度,並相應地調整文本框的寬度,例如

canvas.on('text:editing:exited',   onTextExited)
onTextExited = function(event)
{
var onemm = 10; //Need to calculate what one mm is in pixels
var canvasObj=event.target;
if(canvasObj.width > canvasObj._getTextWidth())
{
//Adjust the width of object 
canvasObj.width = canvasObj._getTextWidth() + onemm;
canvasObj.setCoords();
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM