初始化后,Fabric.js将我的画布大小更改为300x150

use*_*652 41 javascript canvas fabricjs

HTML:

  <div class="canvas-wrapper">
    <canvas id="myCanvas"></canvas>
  </div>
Run Code Online (Sandbox Code Playgroud)

CSS

.canvas-wrapper {
    width: 900px;
    min-height: 600px;
 }

 #myCanvas{
     border:1px solid red;
     position: absolute;
     top:22px;
     left:0px;
     height: 100%;
     width: 99%;
 }
Run Code Online (Sandbox Code Playgroud)

JS

var myCanvas = new fabric.Canvas('myCanvas');
Run Code Online (Sandbox Code Playgroud)

我的画布在初始化后调整为300x150,为什么?

小智 60

在最新版本中,您将需要执行以下操作:

var canvas = new fabric.Canvas('myCanvas');
canvas.setHeight(500);
canvas.setWidth(800);
Run Code Online (Sandbox Code Playgroud)

....你的代码....

canvas.renderAll();
Run Code Online (Sandbox Code Playgroud)

对我来说工作正常..

  • 如何将画布设置为父组件的宽度和高度的100%?我不明白为什么这会更加困难,任何其他尊重100%css属性的组件和每个答案都只显示如何设置为固定的宽度/高度. (9认同)
  • 你应该在最后添加它来重新计算所有对象的位置:canvas.calcOffset(); (2认同)

kan*_*gax 25

在初始化canvas时,Fabric会在canvas元素上读取width/height属性,或者在选项中传递宽度/高度.

var myCanvas = new fabric.Canvas('myCanvas', { width: 900, height: 600 });
Run Code Online (Sandbox Code Playgroud)

要么:

<canvas width="900" height="600"></canvas>
...
var myCanvas = new fabric.Canvas('myCanvas');
Run Code Online (Sandbox Code Playgroud)