亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 290 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號