如何使用 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>
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP