In this tutorial, we will learn how to get the current color of the character at the cursor in IText using FabricJS. The IText class was introduced in FabricJS version 1.4, which extends Fabric.Text and is used to create IText instances. IText instances give us the freedom to select, cut, paste or add new text without additional configuration. There are also various supported key combinations and mouse/touch combinations to make text interactive that are not available in Text.
However, IText-based Textbox allows us to resize the text rectangle and wrap it automatically. This is not the case for IText, as the height does not adjust based on line breaks. We can manipulate IText objects by using various properties. Likewise, we can get the cursor character color using the getCurrentCharColor method. However, if the itext object has a pattern, gradient, or fill, the color of the character at the current cursor will be returned. The default fill color for itext objects is rgb(0,0,0), which is the color "black". Therefore, if nothing is specified, rgb(0,0,0) will be returned as the recorded output.
getCurrentCharColor(): String | fabric.Gradient | fabric.Pattern
Use getCurrentCharColor method to get the default value
Let's look at a code example to understand how the getCurrentCharColor method behaves when no fill color is provided. The logged output will return the default character color.
<!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 the getCurrentCharColor method to get default value</h2> <p>You can open console from dev tools and see the logged output</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 an itext object var itext = new fabric.IText( "Add sample text here.Lorem ipsum dolor sit amet",{ width: 300, left: 60, top: 70, } ); // Add it to the canvas canvas.add(itext); // Using getCurrentCharColor method console.log("The current character colour is: ", itext.getCurrentCharColor()); </script> </body> </html>
Use the getCurrentCharColor method on itext objects with padding
Let's look at a code example to see the output logged when using padding. As we can see, the color of the fill is returned.
<!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 the getCurrentCharColor method for an itext object with fill</h2> <p>You can open console from dev tools and see the logged output for fill</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 an itext object var itext = new fabric.IText( "Add sample text here.Lorem ipsum dolor sit amet",{ width: 300, left: 60, top: 70, fill: "red", } ); // Add it to the canvas canvas.add(itext); // Using getCurrentCharColor method console.log( "The current character colour is: ", itext.getCurrentCharColor() ); </script> </body> </html>
The above is the detailed content of How to get the current color of the character at the cursor in IText using FabricJS?. For more information, please follow other related articles on the PHP Chinese website!