为了账号安全,请及时绑定邮箱和手机立即绑定

FabricJS:如何手动设置对象的宽度和高度

FabricJS:如何手动设置对象的宽度和高度

慕工程0101907 2022-08-18 15:36:07
我有一个织物矩形,我想手动更改宽度和高度。接下来的问题是:当我第一次通过缩放调整ctsize时,它会按预期调整大小,但是在此之后,我尝试更改输入中的值 - 矩形以错误的尺寸重新呈现,但javascript对象中的宽度和高度值正确。法典:<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.3/fabric.min.js"></script><canvas id="draw"></canvas>width:<input type="number" id="w" value="50">var w = document.getElementById('w');var c = new fabric.Canvas('draw');var rect = new fabric.Rect({  top: 50,  left: 50,  width: parseInt(w.value),  height: parseInt(h.value),  fill: 'lightblue',  type: 'rect'});c.add(rect);c.renderAll();c.on('object:scaling', function(e) {  var width = parseInt(e.target.width * e.target.scaleX);  w.value = width;});w.addEventListener('change', function(e) {  rect.set('width', parseInt(e.target.value));  rect.setCoords();  c.requestRenderAll();});
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

找到了解决方案,也许这会帮助某人。当我们监听宽度/高度的变化时,我们还应该考虑当前的比例值。


w.addEventListener('change', (e) => {

  const scale = rect.getObjectScaling();

  rect.set('width', parseInt(e.target.value) / scale.scaleX);

  rect.setCoords();

  rect.requestRenderAll();

});


查看完整回答
反对 回复 2022-08-18
  • 1 回答
  • 0 关注
  • 344 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号