javascript - Fabricjs - 调整大小无法在对象上正常工作

标签 javascript jquery fabricjs

我正在使用 FabricJs,一切都工作得非常顺利和良好,但现在我遇到了问题,我不知道为什么。

这是我的代码:

<canvas id="c" width="300" height="300"></canvas>
<input type="text" value="" placeholder="Rect width" id="rect-width">
<input type="text" value="" placeholder="Rect height" id="rect-height">

<button id="target">
Change
</button>

canvas.on('object:modified', function() {
  var obj = canvas.getActiveObject();
  $('#rect-width').val(Math.floor(obj.getWidth()));
  $('#rect-height').val(Math.floor(obj.getHeight()));

  console.log(Math.round(obj.getWidth()));
  console.log(Math.round(obj.getHeight()));
});


$( "#target" ).click(function() {
/*
var objwidth = $('#rect-width').val();
var objheight = $('#rect-height').val();
*/
var obj = canvas.getActiveObject();
var objwidth =  Math.floor(obj.getWidth());
var objheight = Math.floor(obj.getHeight());


console.log('Original: ' + Math.round(objwidth));
console.log('Orginal: ' + Math.round(objheight));

if(objwidth != '' && objheight != '') {
 rect1.setWidth(Math.round(objwidth));
 rect1.setHeight(Math.round(objheight));
}

http://jsfiddle.net/o0gkmjru/

每次当我缩放对象并按输入中的值提交时,它不会将其缩放到插入的大小。

有人可以解释一下为什么吗?

最佳答案

你需要告诉 Fabric 现在是渲染的时候了。只需将 canvas.renderAll(); 添加到点击处理程序的末尾,您就会看到矩形的大小发生变化。

关于javascript - Fabricjs - 调整大小无法在对象上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204234/

相关文章:

javascript - 检查 IE 的快速伪真方法?

javascript - Fabric.js 将过滤器应用于 Image.fromURL

javascript - 左右滑动显示内容

javascript - 在 Fabric.js Canvas 上添加网格

javascript - Fabric 3.4.0 文本格式

javascript - JQuery 验证在保存按钮单击处理程序中不起作用

javascript - 单击 <the> 将类添加到 div

javascript - 当其他 div 具有相同的类时,如何要求 jquery 应用于一个 div

jquery - 使用来自 AJAX 调用的图像 URL 获取数据?

javascript - 部分到达视口(viewport)之前的视差效果延迟