在原生HTML5画布中,文本由文本基线定位,但在Fabric.js中,文本似乎位于文本的底部。我想让Fabric.js根据基线来定位文本。有可能吗?
请参阅image
这是示例中使用的代码。
Fabric.js<br />
<canvas id="fabric" width="300" height="300" style="border:1px solid #d3d3d3;"></canvas>
<script src="fabric.js"></script>
<script>
var canvas = new fabric.Canvas('fabric');
canvas.add(new fabric.Line([100, 100, 200, 100], { left: 10, top: 50, stroke: 'red' }));
canvas.add(new fabric.Text('Hello World', { left: 10, top: 50, originY: 'bottom', useNative: true, fontSize: 50 }));
</script>
<br />
Native HTML5<br />
<canvas id="native" width="300" height="300" style="border:1px solid #d3d3d3;"></canvas>
<script>
var c = document.getElementById("native");
var ctx = c.getContext("2d");
ctx.font = "50px Times New Roman";
ctx.fillText("Hello World",10,50);
ctx.moveTo(10,50);
ctx.lineTo(100,50);
ctx.strokeStyle = '#ff0000';
ctx.stroke();
</script>
发布于 2015-07-07 10:09:15
不幸的是,目前看起来不太可能。textBaseline属性设置为“字母”,唯一可用的垂直对齐选项是“顶部”、“中心”和“底部”(相对于fabric在文本周围绘制的边界框)。
我已经创建了一个issue来请求这个特性。希望他们会加进去!
https://stackoverflow.com/questions/28087749
复制相似问题