我怎么能在fabric.js中实现这个目标?
文字限制: 1) - 如果用户在可用的文本框中键入太多文本,则不应允许它们显示,并且应显示一条消息,告诉他们选择其他消息或查找其他字体。 找到了答案..
请帮助我重新开始2
2) - 如果用户键入两侧文本框中剩余大量空间的消息,则文本框应调整为大小在文本的1mm范围内。我想这是因为文本框有虚线边框。另请注意,背景图案不会位于文本框下方,这是文本框填充宽度时需要缩短文本框的另一个原因(以便可以显示更多背景)。
3) -
客户总是希望文本框的整个高度最大化,这样字母的顶部总是触及顶部,字母的底部总是触及底部,无论它是大小写的混合,无论是如果字母有尾巴。
以下是一些例子来解释需要发生什么(请阅读列表末尾以便正确理解):
“HELLO”这个词 - 所有字母都会触及顶部和底部
单词“Hello” - “H”和“ll”将触及顶部和底部
单词“aaaa” - 即使小写字母会触及顶部和底部
单词“aaah” - “h”将触及顶部和底部,“aaa”将仅触及底部
“大”这个词 - 因为“g”下降,“g”将触及底部,但“bi”将不触及。这个词实际上会非常小,因为“b”会触及顶部但不触及底部,“g”将触及底部但不触及顶部,而“i”也不触及。
答案 0 :(得分:0)
对于问题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();
}
}