By default fabric.js elements come with 8 points to scale any objects. But the app I'm working specifically requires that stretching should not be allowed on a single axis (horizontally or vertically). I only want the corner points, not the ones on sides.
Is it that possible with fabric.js?
Yes,
you can use object.setControlsVisibility()
: http://fabricjs.com/docs/fabric.Object.html#setControlsVisibility
this.setControlsVisibility({
mt: false, // middle top disable
mb: false, // midle bottom
ml: false, // middle left
mr: false, // I think you get it
});
JsFiddle example: http://jsfiddle.net/Colmea/GjjJ8/1/ (note there is a minor bug with 'mr' control in 1.4.0 version, fixed in 1.4.1).
Or you can use object.setControlVisible()
:
object. setControlVisible('mt', false); // disable middle top control
Note: This only hides controls and avoid dragging them. But to avoid any scale: use lockScalingX
and lockScalingY
properties.
You can use object.lockUniScaling = true
.
Also, you can customize your corners: http://fabricjs.com/customization
imgInstance.setControlsVisibility({
mt: false,
mb: false,
ml: false,
mr: false,
bl: false,
br: false,
tl: false,
tr: false,
mtr: false,
});
change "imgInstance" to be your object.
@http://fabricjs.com/docs/fabric.Image.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With