How to set the vertical origin of transformation of Text using FabricJS?


In this tutorial, we are going to learn how to set the vertical origin of transformation of Text using FabricJS. We can display text on canvas by adding an instance of fabric.Text. Not only does it allow us to move, scale and change the dimensions of the text but it also provides additional functionality like text alignment, text decoration, line height which can be obtained by the properties textAlign, underline and lineHeight respectively. Similarly, we can also set the vertical origin of transformation by using the originY property.

Syntax

new fabric.Text(text: String , { originY : String }: Object)

Parameters

  • text − This parameter accepts a String which is the text string that we want to display.

  • options (optional) − This parameter is an Object which provides additional customizations to our text. Using this parameter colour, cursor, border width and a lot of other properties can be changed related to the object of which originY is a property.

Options Keys

  • originY − This property accepts a String value which allows us to set the vertical origin of transformation. The possible values are “top”, “bottom”, and “center”. Its default value is “top”.

Example 1

Default appearance of the Text object

Let’s see a code example to see how our text object looks when the originY property is not used. In this case, the vertical origin of transformation will be top which is also the default.

<!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>Default appearance of the Text object</h2> <p>You can see that the vertical origin of transformation is towards top</p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a text object var text = new fabric.Text("Add sample
text here."
, { width: 300, left: 50, top: 70, fill: "green", }); // Add it to the canvas canvas.add(text); </script> </body> </html>

Example 2

Passing the originY property as key with a value

In this example, we will see how assigning a value to the originY property changes the vertical origin of transformation. We have used two text objects in this example to show the difference. In our first text object, since we have passed the value as “bottom”, the vertical origin of transformation now lies towards the bottom. Same top property of 100 is applied to both text but still they are in different vertical position because of change in the vertical origin of transformation.

<!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>Passing the originY property as key with a value</h2> <p>You can see that origin of transformation for the first text object(text1) is bottom while text2 maintains the default vertical origin of transformation</p> <canvas id="canvas"></canvas> <script> // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // Initiate a text object var text1 = new fabric.Text("Text 1", { width: 300, left: 200, top: 100, fill: "green", originY: "bottom", }); // Initiate a text object var text2 = new fabric.Text("Text 2", { width: 300, left: 50, top: 100, fill: "red", }); // Add it to the canvas canvas.add(text1); canvas.add(text2); </script> </body> </html>

Updated on: 14-Sep-2022

168 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements