如何使用 FabricJS 设置文本框的宽度?

fabricjshtml5 canvasjavascript

在本教程中,我们将学习如何使用 FabricJS 设置文本框的宽度。我们可以自定义、拉伸或移动文本框中写入的文本。为了创建文本框,我们必须创建 fabric.Textbox 类的实例并将其添加到画布中。但是,文本框的基本属性之一是宽度,它指定了文本框的水平宽度。

语法

new fabric.Textbox(text: String, { width: Number }: Object)

参数

  • text − 此参数接受一个 String,这是我们想要在文本框内显示的文本字符串。

  • options (可选) − 此参数是一个 Object,它为我们的文本框提供额外的自定义。使用此参数,可以更改与对象相关的属性,例如颜色、光标、笔划宽度和许多其他属性,其中 width 是该对象的一个​​属性。

选项键

  • width − 此属性接受 Number 值。分配的值决定了文本框的宽度。

示例 1

默认行为或未指定 width 属性时的行为

让我们看一个代码示例,以了解未指定 width 属性时对象的行为。由于未指定宽度,因此每个单词都被视为新行。文本框的高度会根据换行自动调整。

<!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 or when width property is not specified</h2> <p>You can see that each word is treated as a new line since the width hasn't been specified</p> <canvas id="canvas"></canvas> <script> // 启动一个canvas实例 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // 初始化一个 textbox 文本框对象 var textbox = new fabric.Textbox("All generalizations are false, including this one.", { left: 50, top: 45, fill: "orange", stroke: "green", }); // 将其添加到画布 canvas.add(textbox); </script> </body> </html>

示例 2

width 属性作为键传递

在此示例中,我们为 width 属性分配一个值。在本例中,我们手动指定文本框的水平宽度,因此线条将进行相应调整。

<!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 width property as key</h2> <p>You can see that the horizontal width now has a fixed value of 400</p> <canvas id="canvas"></canvas> <script> // 启动一个canvas实例 var canvas = new fabric.Canvas("canvas"); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250); // 初始化一个 textbox 文本框对象 var textbox = new fabric.Textbox("All generalizations are false, including this one.", { left: 50, top: 45, fill: "orange", stroke: "green", width: 400, }); // 将其添加到画布 canvas.add(textbox); </script> </body> </html>

相关文章