如何使用 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 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.