0

我有带有文本“这是测试文本框”的文本框,我想将下划线设置为仅单词“测试”而不是整个文本框文本。如何为子字符串设置下划线?

面料问题

var canvas = new fabric.Canvas('c');

var underlineText = new fabric.Textbox("This is test textbox", {
  underline: true,
});

canvas.add(underlineText);
canvas {
    border: 1px solid #999;
}
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="1000" height="500"></canvas>

由于 2.0 还没有为文档和示例做好准备,改变的一件事是 textDecoration 已被删除。到位我们有:.underline, .overline, .linetrought他们每个人都有一个真假。问题

谢谢。任何帮助将不胜感激。

4

1 回答 1

3

我不同意 2.0 还没有为文档和示例做好准备。1.0 中的文档和示例已被转换并添加了更多内容。

这么说,我知道与这个问题无关,fabricJS 中的所有 Text 类都有一个setSelectionStyle方法,该方法将样式对象和开始和结束索引作为参数。

http://fabricjs.com/docs/fabric.Text.html#setSelectionStyles

所以调用:

myText.setSelectionStyles({ underline: true }, 2, 4);

应为位置 2、3 和 4 的文本字符设置下划线。

于 2018-08-29T11:06:43.887 回答