Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to disable multiple specific control points of Image object using FabricJS?
In this tutorial, we are going to learn how to disable multiple specific control points of an Image object using FabricJS. We can create an Image object by creating an instance of fabric.Image. Since it is one of the basic elements of FabricJS, we can also easily customize it by applying properties like angle, opacity etc. In order to disable multiple specific control points of an Image object, we use the setControlsVisibility method.
Syntax
setControlsVisibility(options: Object): fabric.Object
Parameters
-
options? This parameter accepts an Object value which sets the visibility state of controls. The possible values are ?'tl'? This property accepts a Boolean value which enables or disables the top-left control.'tr'? This property accepts a Boolean value which enables or disables the top-right control.'br'? This property accepts a Boolean value which enables or disables the bottom-right control.'bl'? This property accepts a Boolean value which enables or disables the bottom-left control.'ml'? This property accepts a Boolean value which enables or disables the middle-left control.'mt'? This property accepts a Boolean value which enables or disables the middle-top control.'mr'? This property accepts a Boolean value which enables or disables the middle-right control.'mb'? This property accepts a Boolean value which enables or disables the middle-bottom control.'mtr'? This property accepts a Boolean value which enables or disables the middle-top-rotate control.
Using setControlsVisibility Method
Example
Let's see a code example to see the output when the setControlsVisibility method is used. The setControlsVisibility method sets the visibility of multiple specified controls. In this case, since we have passed the 'tl' and 'bl' controls a false value, thus the top-left and bottom-left controls will be disabled.
<!DOCTYPE html>
<html>
<head>
<!-- Adding the Fabric JS Library-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
<h2>Using setControlsVisibility method</h2>
<p>
You can select the image object to see that the bottom-left and top-left controls have been disabled
</p>
<canvas id="canvas"></canvas>
<img src="https://www.tutorialspoint.com/images/logo.png" id="img1" style="display: none" />
<script>
// Initiate a canvas instance
var canvas = new fabric.Canvas("canvas");
canvas.setWidth(document.body.scrollWidth);
canvas.setHeight(250);
// Initiating the image element
var imageElement = document.getElementById("img1");
// Initiate an Image object
var image = new fabric.Image(imageElement, {
top: 50,
left: 110,
});
// Add it to the canvas
canvas.add(image);
// Using setControlsVisibility method
image.setControlsVisibility({
tl: false,
bl: false,
});
</script>
</body>
</html>
Using setControlsVisibility Method to Disable the Middle-Top-Rotate Control
Example
In this example we will use the setControlsVisibility method to disable the 'mtr' control, which is also known as the middle-top-rotate control.
<!DOCTYPE html>
<html>
<head>
<!-- Adding the Fabric JS Library-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
</head>
<body>
<h2>
Using setControlsVisibility method to disable the middle-top-rotate control
</h2>
<p>
You can select the image object to see that the middle-top-rotate control has been disabled
</p>
<canvas id="canvas"></canvas>
<img src="https://www.tutorialspoint.com/images/logo.png" id="img1" style="display: none" />
<script>
// Initiate a canvas instance
var canvas = new fabric.Canvas("canvas");
canvas.setWidth(document.body.scrollWidth);
canvas.setHeight(250);
// Initiating the image element
var imageElement = document.getElementById("img1");
// Initiate an Image object
var image = new fabric.Image(imageElement, {
top: 50,
left: 110,
});
// Add it to the canvas
canvas.add(image);
// Using setControlsVisibility method
image.setControlsVisibility({
mtr: false,
});
</script>
</body>
</html>
Conclusion
The setControlsVisibility method in FabricJS provides fine-grained control over which transformation handles are visible on Image objects. Use this method to customize the user interface by selectively hiding controls based on your application's requirements.
