Syntax error How to lock the horizontal movement of Line using FabricJS?

How to lock the horizontal movement of Line using FabricJS?



In this tutorial, we are going to learn how to lock the horizontal movement of a 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 the line object to move only in the Y-axis. This can be done by using the lockMovementX property.

Syntax

new fabric.Line(points: Array, { lockMovementX: 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 line object. Using this parameter origin, stroke width and a lot of other properties can be changed related to the object of which lockMovementX is a property.

Options Keys

  • lockMovementX ? 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 horizontal 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 lockMovementX 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 lockMovementX as key with ?true' value

Example

In this example, we will see how we can lock the horizontal movement of a line object. By assigning the lockMovementX property a ?true' value, we essentially cease movement in the horizontal 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 lockMovementX 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 horizontal 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, lockMovementX: "true", }); // Add it to the canvas canvas.add(line); </script> </body> </html>
Updated on: 2022-10-25T08:41:56+05:30

374 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements