デフォルトでは、fabric.js要素には、オブジェクトをスケーリングするための8ポイントが付属しています。しかし、私が特に作業しているアプリでは、単一軸(水平または垂直)でのストレッチを許可しないようにする必要があります。角のポイントだけが必要です。側面のポイントは必要ありません。
それはfabric.jsで可能ですか?
object.lockUniScaling = true
を使用できます。
また、コーナーをカスタマイズできます: http://fabricjs.com/customization
はい、
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の例: http://jsfiddle.net/Colmea/GjjJ8/1/ (1.4.0バージョンで「mr」コントロールにマイナーバグがあり、1.4.1で修正されていることに注意してください)。
またはobject.setControlVisible()
を使用できます:
object. setControlVisible('mt', false); // disable middle top control
注:これはコントロールを非表示にするだけで、ドラッグを回避します。ただし、スケールを回避するには、lockScalingX
およびlockScalingY
プロパティを使用します。
imgInstance.setControlsVisibility({
mt: false,
mb: false,
ml: false,
mr: false,
bl: false,
br: false,
tl: false,
tr: false,
mtr: false,
});
「imgInstance」をオブジェクトに変更します。