如何使用fabric.js禁用canvas元素的缩放点?

Roh*_*210 19 javascript canvas fabricjs

默认情况下,fabric.js元素带有8个点来缩放任何对象.但我正在工作的应用程序要求不允许在单个轴(水平或垂直)上进行拉伸.我只想要角点,而不是侧面点.

是否可以使用fabric.js?

Col*_*mea 32

是,

您可以使用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
});
Run Code Online (Sandbox Code Playgroud)

JsFiddle示例:http://jsfiddle.net/Colmea/GjjJ8/1/(注意1.4.0版本中有'mr'控件存在一个小错误,修复于1.4.1).

或者您可以使用object.setControlVisible():

object. setControlVisible('mt', false); // disable middle top control

注意:这只会隐藏控件并避免拖动它们.但要避免任何规模:使用lockScalingXlockScalingY属性.


rod*_*ini 20

你可以用object.lockUniScaling = true.
此外,您可以自定义角落:http://fabricjs.com/customization


Com*_*ine 10

   imgInstance.setControlsVisibility({
         mt: false, 
         mb: false, 
         ml: false, 
         mr: false, 
         bl: false,
         br: false, 
         tl: false, 
         tr: false,
         mtr: false, 
    });
Run Code Online (Sandbox Code Playgroud)

将"imgInstance"更改为您的对象.

@ http://fabricjs.com/docs/fabric.Image.html


小智 5

用它:

object.hasControls = object.hasBorders = false;

http://fabricjs.com/customization