En este artículo, veremos cómo bloquear el cambio de escala de un lienzo de texto usando FabricJS. El lienzo significa que el texto escrito es móvil, giratorio, de tamaño variable y se puede estirar. Además, normalmente se puede escalar hacia el lado negativo para voltear el texto, pero bloquearemos el cambio de escala para que no se pueda voltear. Además, el texto en sí no se puede editar como un cuadro de texto.
Para hacerlo posible, vamos a utilizar una biblioteca de JavaScript llamada FabricJS. Después de importar la biblioteca usando CDN, crearemos un bloque de lienzo en la etiqueta del cuerpo que contendrá nuestro texto. Después de esto, inicializaremos las instancias de Canvas y Text proporcionadas por FabricJS y usaremos la propiedad lockScalingFlip para bloquear el cambio de escala y representar el Canvas en el Text como se muestra en el siguiente ejemplo.
Sintaxis:
fabric.Text(text, lockScalingFlip: boolean);
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- texto: Especifica el texto a escribir.
- lockScalingFlip: Especifica si habilitar o deshabilitar el flip lock de escalado, deshabilitado por defecto.
Ejemplo: podemos usar FabricJS para bloquear el cambio de escala de un texto similar a un lienzo como se indica a continuación.
html
<!DOCTYPE html> <html> <head> <title> lock scaling flip of a canvas-type text with JavaScript </title> <!-- Loading the FabricJS library --> <script src= "https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.2/fabric.min.js"> </script> <style> h1 { color: green; } </style> </head> <body> <center> <h1>GeeksforGeeks</h1> <b>lock scaling flip of a canvas-type text</b> <canvas id="canvas" width="600" height="200" style="border:1px solid #000000;"> </canvas> <script> // Create a new instance of Canvas var canvas = new fabric.Canvas("canvas"); // Create a new Text instance var text = new fabric.Text('GeeksforGeeks', { lockScalingFlip: true }); // Render the text on Canvas canvas.add(text); </script> </center> </body> </html>
Producción: