 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- 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 create a canvas with crosshair cursor on hover over objects using FabricJS?
In this article, we are going to create a canvas with a crosshair cursor on hover using FabricJS. crosshair is one of the native cursor style available which can be used in the FabricJS canvas too. FabricJS provides various types of cursors like default, all-scroll, crosshair, col-resize, row-resize etc which are reusing the native cursor underhood. The hoverCursor property sets the style of the cursor when hovered over a canvas object.
Syntax
new fabric.Canvas(element: HTMLElement|String, { hoverCursor: String }: Object)  Parameters
- element − This parameter is the <canvas> element itself which can be derived using document.getElementById() or the id of the <canvas> element itself. The FabricJS canvas will be initialized on this element. 
- options (optional) − This parameter is an Object which provides additional customizations to our canvas. Using this parameter color, cursor, border width and a lot of other properties can be changed related to the canvas, of which hoverCursor is a property with which we can set the default cursor value when hovering over an object on the canvas. 
Example 1
Passing the hoverCursor key to the class
The hoverCursor property accepts a String which determines the name of the cursor to be used on hovering over the canvas object. Let's see a code to create a canvas with a crosshair cursor on hover in FabricJS.
<!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>Canvas with crosshair cursor on hover over object using FabricJS</h2>    <p>Hover the mouse over the object to see how the curstor style changes. </p>    <canvas id="canvas"></canvas>    <script>       // Initiate a canvas instance       var canvas = new fabric.Canvas("canvas", {          hoverCursor: "crosshair",       });       // Creating an instance of the fabric.Circle class       var cir = new fabric.Circle({          radius: 60,          fill: "#ff91a4",          left: 30,          top: 20,       });       // Adding it to the canvas       canvas.add(cir);       canvas.setWidth(document.body.scrollWidth);       canvas.setHeight(250);    </script> </body> </html>  Example 2
Setting the hoverCursor using dot notation
In this example, we have a circle object and a rectangle object and by assigning hoverCursor the value "crosshair", when we hover over any object in the canvas, our cursor will change into the crosshair cursor type.
<!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>Canvas with crosshair cursor on hover over the objects using FabricJS</h2>    <p>There are two objects on this canvas. Hover the mouse over the objects to see how the cursor style changes. </p>    <canvas id="canvas"></canvas>    <script>       // Initiate a canvas instance       var canvas = new fabric.Canvas("canvas");       canvas.hoverCursor = "crosshair";       // Creating an instance of the fabric.Circle class       var cir = new fabric.Circle({          radius: 40,          fill: "#ccccff",          left: 30,          top: 20,       });       // Creating an instance of the fabric.Rect class       var rect = new fabric.Rect({          left: 170,          top: 150,          width: 60,          height: 80,          fill: "#96ded1",          angle: 90,       });       // Adding it to the canvas       canvas.add(cir);       canvas.add(rect);       canvas.setWidth(document.body.scrollWidth);       canvas.setHeight(250);    </script> </body> </html>