如何使用 FabricJS 创建带有虚线边框的线条?


在本教程中,我们将学习如何使用 FabricJS 创建带有虚线边框的线条。线条元素是 FabricJS 提供的基本元素之一。它用于创建直线。因为线条元素在几何上是一维的,并且不包含内部,所以它们永远不会被填充。我们可以通过创建一个fabric.Line实例,指定线条的x和y坐标并将其添加到画布上来创建线条对象。

为了改变边框虚线的样式,我们使用borderDashArray属性。但是,我们的线条对象必须有边框才能使此属性生效。如果hasBorders属性被赋值为false,则此属性将无效。

语法

 new fabric.Line( points: Array , { borderDashArray: Array }: Object) 

参数

  • points − 此参数接受一个数组点,用于确定(x1, y1)和(x2, y2)的值,分别表示线条起始和结束点的x和y坐标。

  • options (可选) − 此参数是一个对象,它为我们的对象提供额外的自定义选项。使用此参数可以更改对象的原点、笔划宽度和许多其他属性,其中borderDashArray就是一个属性。

选项键

  • borderDashArray − 此属性接受一个数组,通过数组中的间隔值来指定虚线样式。例如,如果我们传入一个值为[2,3]的数组,则表示2像素的虚线和3像素的间隙,并无限重复此样式。

使用自定义值传递borderDashArray作为键

示例

让我们来看一个使用 FabricJS 中的borderDashArray属性创建虚线边框的代码示例。在此示例中,我们使用了[7,10]数组,这意味着图案将通过绘制一条7像素长的线,然后是10像素的间隙,并重复此图案来创建。

<!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 borderDashArray as key with a custom value</h2> <p> You can select the line object to see the dash pattern </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 line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, borderDashArray: [7, 10], }); // Add it to the canvas canvas.add(line); </script> </body> </html>

使用值为“false”的hasBorders键

示例

正如我们在这个例子中看到的,即使我们已经为borderColor和borderDashArray属性分配了正确的值,它们也不会生效,因为hasBorders属性已被设置为false。当设置为false时,对象的边框不会被渲染。

<!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 hasBorders key with the value “false</h2> <p> You can select the line object to see the dash pattern is not visible </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 line = new fabric.Line([200, 100, 100, 40], { stroke: "blue", strokeWidth: 20, borderDashArray: [7, 10], hasBorders: false, }); // Add it to the canvas canvas.add(line); </script> </body> </html>

更新于:2022年10月20日

292 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告