In this article, we are going to see how to draw a canvas Textbox in which border opacity will change when the user is moving the Textbox using FabricJS. The canvas Textbox means the Textbox is movable and can be stretched according to requirement. Further, the Textbox can be customized when it comes to initial stroke color, height, width, fill, or stroke width.
Approach:
- In this approach to make this possible, we are going to use a JavaScript library called FabricJS.
- After importing the library, we will create a canvas block in the body tag which will contain the Textbox.
- After this, we will initialize instances of Canvas and Textbox provided by FabricJS and enable the borderOpacityWhenMoving of canvas Textbox using borderOpacityWhenMoving property and render the Textbox on the Canvas as given below.
Syntax:
fabric.Textbox('text', { borderOpacityWhenMoving: number });
Parameters: This function accepts single parameters as mentioned above and described below:
borderOpacityWhenMoving: This parameter defines the border opacity of the Textbox.
Example: This example uses FabricJS to enable the borderOpacityWhenMoving of the canvas-like Textbox as given below. Try borderOpacityWhenMoving the object after enabling borderOpacityWhenMoving property, it will change the opacity of the Textbox border by a defined number.
HTML
<!DOCTYPE html> < html > < head > < title > Fabric.js | Textbox borderOpacityWhenMoving Property </ title > <!-- Adding the FabricJS library --> < script src = </ script > </ head > < body > < h1 style = "color: green;" > neveropen </ h1 > < h3 > Fabric.js | Textbox borderOpacityWhenMoving Property </ h3 > < canvas id = "canvas" width = "600" height = "300" style = "border:1px solid #000000" > </ canvas > < script > // Initiate a Canvas instance var canvas = new fabric.Canvas("canvas"); // Create a new Textbox instance var text = new fabric.Textbox( 'A Computer Science Portal', { width: 450, borderOpacityWhenMoving: 0 }); // Render the Textbox in canvas canvas.add(text); canvas.centerObject(text); </ script > </ body > </ html > |
Output: