在Fabric JS中重置字体大小

时间:2017-11-21 14:27:02

标签: javascript canvas fabricjs

我正在尝试更改画布中文本的字体大小。我尝试过以下选项,但它无法正常工作。让我说我已经通过使用控制选项放大文本,然后如果我应用字体大小然后它不起作用。

var canvas = new fabric.Canvas('a');
var add_text = new fabric.IText('Hello World', { 
	left: 50, 
	top: 50,
	fontSize:20,
});

canvas.add(add_text);
canvas.renderAll();

$('.manage_font_size').change(function(){
	var cur_value = $(this).val();
	if(cur_value!='')
	{
		var activeObj = canvas.getActiveObject();
		//Check that text is selected
		if(activeObj==undefined)
		{
			alert('Please select a Text');
			return false;
		}
		activeObj.set({
			fontSize: cur_value
		});
		canvas.renderAll();
	}
});
canvas {
  border: 2px solid black;
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type='text/javascript' src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.19/fabric.js"></script>
<select class="manage_font_size">
	<option>select</option>
	<option value="10">10 PX</option>
	<option value="20">20 PX</option>
	<option value="30">30 PX</option>
	<option value="40">40 PX</option>
</select>
<canvas id="a" width="400" height="200"></canvas>

1 个答案:

答案 0 :(得分:1)

您可以将scaleXscaleY重置为1以取消尺寸更改,然后应用fontSize

&#13;
&#13;
var canvas = new fabric.Canvas('a');
var add_text = new fabric.IText('Hello World', { 
	left: 50, 
	top: 50,
	fontSize:20,
});

canvas.add(add_text);
canvas.renderAll();

$('.manage_font_size').change(function(){
	var cur_value = $(this).val();
	if(cur_value!='')
	{
		var activeObj = canvas.getActiveObject();
		//Check that text is selected
		if(activeObj==undefined)
		{
			alert('Please select a Text');
			return false;
		}
		activeObj.set({
      scaleX:1,
      scaleY:1,
			fontSize: cur_value
		});
		canvas.renderAll();
	}
});
&#13;
canvas {
  border: 2px solid black;
}
&#13;
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script type='text/javascript' src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.19/fabric.js"></script>
<select class="manage_font_size">
	<option>select</option>
	<option value="10">10 PX</option>
	<option value="20">20 PX</option>
	<option value="30">30 PX</option>
	<option value="40">40 PX</option>
</select>
<canvas id="a" width="400" height="200"></canvas>
&#13;
&#13;
&#13;