Javascript fabric.js-文本下划线和线宽
我在fabric.js中的文本中添加了下划线,其工作原理如下图所示。但是下划线离文本有点远,我更改了Javascript fabric.js-文本下划线和线宽,javascript,fabricjs,textedit,Javascript,Fabricjs,Textedit,我在fabric.js中的文本中添加了下划线,其工作原理如下图所示。但是下划线离文本有点远,我更改了lineHeight属性,下划线可以更接近文本,但问题是选择控件的高度也发生了更改。请看下面的图片 第一个,我更改了lineHeight=0.2,添加了下划线,很好,但是选择控件变得很奇怪。第二,我使用了默认的lineHeight,但是下划线与文本有点远。那么,如何在没有选择问题的情况下为文本添加下划线呢 我测试了一下,发现这个问题是因为originX='left',和originY='top',
lineHeight
属性,下划线可以更接近文本,但问题是选择控件的高度也发生了更改。请看下面的图片
第一个,我更改了lineHeight=0.2
,添加了下划线,很好,但是选择控件变得很奇怪。第二,我使用了默认的lineHeight
,但是下划线与文本有点远。那么,如何在没有选择问题的情况下为文本添加下划线呢
我测试了一下,发现这个问题是因为originX='left'
,和originY='top'
,如果originX='center'
没有问题
尝试此代码,希望它能更好地为您服务
<input type="button" id="undrline" value="Underline" class="underline" >
$("#undrline").click(function() {
alert("underline");
var obj = canvas.getActiveObject();
if (!obj) return;
obj.setTextDecoration('underline');
canvas.renderAll();
});
$(“#undrline”)。单击(函数(){
警告(“下划线”);
var obj=canvas.getActiveObject();
如果(!obj)返回;
对象setTextDecoration(“下划线”);
canvas.renderAll();
});
线宽直接影响控制框;基本上是fontSize*lineHeight
。没有内置的方法来修改装饰线的垂直偏移。但您的示例中的行太低,看起来像某种bug。请制作一个简单的JSFIDLE来说明这个问题。这里是-,github中的问题报告在这里-因此,行高不会被解释为文本行的高度,而是更像一个比例因子。否则,fontSize*lineHeight获取控制框高度是错误的。此错误已在最新开发版本中修复。