FabricJS – How to move a Line object to the bottom of the stack of drawn objects?


In this tutorial, we are going to learn about how to move a Line object to the bottom of the stack of drawn objects 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. In order to move a Line object to the bottom of the stack of drawn objects, we use the sendToBack method.

Syntax

sendToBack(): fabric.Object

Using sendToBack method

Example

Let’s see a code example to see the output when the sendToBack method is used. The sendToBack method moves an object to the bottom of the stack of drawn objects. In this case line2 is sent behind line1, on using the sendToBack method.

<!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>Using sendToBack method</h2> <p>You can see that line2 (red) lies behind line1 (blue)</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 line1 = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, }); // Initiate another Line object var line2 = new fabric.Line([200, 70, 70, 40], { stroke: "red", strokeWidth: 20, }); // Add both to the canvas canvas.add(line1); canvas.add(line2); // Using sendToBack method line2.sendToBack(); </script> </body> </html>

Using sendToBack method with three objects

Example

In this example, we have used three line objects namely line1, line2 and line3. Although they have been added to the canvas according to their numerical order, line3 clearly lies at the very end. This is because we have used the sendToBack method, which sends line3 at the bottom of the stack of drawn objects.

<!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>Using sendToBack method with three objects</h2> <p> You can see that line3 (green) lies at the bottom of the stack of drawn objects </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 line1 = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, }); // Initiate another Line object var line2 = new fabric.Line([200, 70, 70, 40], { stroke: "red", strokeWidth: 20, }); // Initiate another Line object var line3 = new fabric.Line([200, 30, 30, 90], { stroke: "green", strokeWidth: 20, }); // Add them all to the canvas canvas.add(line1); canvas.add(line2); canvas.add(line3); // Using sendToBack method line3.sendToBack(); </script> </body> </html>

Updated on: 25-Oct-2022

241 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements