- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to set the horizontal scale factor of a Rectangle using FabricJS?
In this tutorial, we are going to learn how to set the horizontal scale factor of a Rectangle using FabricJS. Rectangle is one of the various shapes provided by FabricJS. In order to create a rectangle, we will have to create an instance of fabric.Rect class and add it to the canvas.
Just as we can specify the position, colour, opacity and dimension of a rectangle object in the canvas, we can also set the horizontal scale of a rectangle object. This can be done by using the scaleX property.
Syntax
new fabric.Rect({ scaleX : Number }: Object)
Parameters
Options (optional) − This parameter is an Object which provides additional customizations to our rectangle. Using this parameter, properties such as colour, cursor, stroke width, and a lot of other properties can be changed related to the object of which scaleX is a property.
Options keys
scaleX − This property accepts a Number value. The value that is assigned, determines the horizontal object scale factor. Its default value is 1.
Example 1
Default appearance when scaleX is not used
Let’s see a code example that displays the appearance of our rectangle object when the scaleX property is not used. By default, the horizontal scale factor of the rectangle object is 1. scaleX determines the transformation that resizes an object along the X-axis.
<!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 when scaleX is not used</h2> <p>You can see that there is no scaling along the X-axis</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 rectangle object var rect = new fabric.Rect({ left: 105, top: 70, width: 170, height: 70, fill: "#dcdcdc", stroke: "#696969", strokeWidth: 5, }); // Add it to the canvas canvas.add(rect); </script> </body> </html>
Example 2
Passing scaleX property as key
In this example, we are passing the scaleX property as a key with a value of 2. This means that the rectangle object's scale factor in the horizontal direction is doubled.
<!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 scaleX property as key</h2> <p>You can see that the object’s horizontal width has been doubled</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 rectangle object var rect = new fabric.Rect({ left: 105, top: 70, width: 170, height: 70, fill: "#dcdcdc", stroke: "#696969", strokeWidth: 5, scaleX: 2, }); // Add it to the canvas canvas.add(rect); </script> </body> </html>