在 fabric js 中缩放时如何保持 Rect 的圆角
How to maintain rounded corner of Rect when scaling in fabric js
我正在使用 fabric js 版本 1.7.22。
原始对象:
当前结果:
预期结果:
一种方法是监视 scaling
事件并将 Rect 的比例重置为 1,改为修改其 width
和 height
:
const canvas = new fabric.Canvas('c')
const rect = new fabric.Rect({
left: 10,
top: 10,
width: 100,
height: 100,
fill: 'blue',
rx: 10,
ry: 10,
objectCaching: false,
})
rect.on('scaling', function() {
this.set({
width: this.width * this.scaleX,
height: this.height * this.scaleY,
scaleX: 1,
scaleY: 1
})
})
canvas.add(rect).renderAll()
canvas {
border: 1px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.22/fabric.js"></script>
<canvas id="c" width="300" height="250"></canvas>
我正在使用 fabric js 版本 1.7.22。
原始对象:
当前结果:
预期结果:
一种方法是监视 scaling
事件并将 Rect 的比例重置为 1,改为修改其 width
和 height
:
const canvas = new fabric.Canvas('c')
const rect = new fabric.Rect({
left: 10,
top: 10,
width: 100,
height: 100,
fill: 'blue',
rx: 10,
ry: 10,
objectCaching: false,
})
rect.on('scaling', function() {
this.set({
width: this.width * this.scaleX,
height: this.height * this.scaleY,
scaleX: 1,
scaleY: 1
})
})
canvas.add(rect).renderAll()
canvas {
border: 1px solid red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.22/fabric.js"></script>
<canvas id="c" width="300" height="250"></canvas>