- 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 lock the vertical movement of Line using FabricJS?
In this tutorial, we are going to learn how to lock the vertical movement of Line using FabricJS. A Line element is one of the basic elements provided in FabricJS. It is used for creating straight lines. Because line elements are geometrically one-dimensional and do not contain an interior, they are never filled. We can create a line object by creating an instance of fabric.Line, specifying the x and y coordinates of the line and adding it to the canvas. We can also specify whether we want line object to move only in the X-axis. This can be done by using the lockMovementY property.
Syntax
new fabric.Line(points: Array, { lockMovementY: Boolean }: Object)
Parameters
points − This parameter accepts an Array of points which determines the (x1, y1) and (x2, y2) values, those being the x- and y-axis coordinates of the start and end of the line respectively.
options (optional) − This parameter is an Object which provides additional customizations to our object. Using this parameter origin, stroke width and a lot of other properties can be changed related to the object of which lockMovementY is a property.
Options Keys
lockMovementY − This property accepts a Boolean value. If we assign it a ‘true’ value, then the object will no longer be able to move in the vertical direction.
Default behaviour of a Line object in the canvas
Example
Let’s see a code example to understand how we can move our line object in the X-axis or the Y-axis freely when lockMovementY property is not assigned a ‘true’ value.
<!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 behaviour of a Line object in the canvas</h2> <p> Drag the line object across the x-axis and y-axis to see that movement is allowed in both directions </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 Line object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, }); // Add it to the canvas canvas.add(line); </script> </body> </html>
Passing lockMovementY as key with ‘true’ value
Example
In this example, we will see how we can lock the vertical movement of a line object. By assigning the lockMovementY property a ‘true’ value, we essentially cease movement in the vertical direction.
<!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 lockMovementY as key with ‘true’ value</h2> <p> Drag the line object across the x-axis and y-axis to see that movement is no longer allowed in the vertical direction </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 Line object var line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, lockMovementY: true, }); // Add it to the canvas canvas.add(line); </script> </body> </html>