繁体   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