如何使用 FabricJS 設定文字控制角的虛線樣式?
在本教程中,我們將學習如何使用 FabricJS 實現文字控制角的虛線樣式。物件的控制角允許我們縮放、拉伸或更改其位置。我們可以透過多種方式自定義控制角,例如為其新增特定顏色、更改其大小等。我們還可以使用 cornerDashArray 屬性為控制角指定虛線樣式。
語法
new fabric.Text(text: String, { cornerDashArray: Array }: Object)
引數
text − 此引數接受一個字串,即我們要顯示的文字字串。
options (可選) − 此引數是一個物件,它為我們的文字提供額外的自定義選項。使用此引數,可以更改與物件的 cornerDashArray 屬性相關的顏色、游標、筆觸寬度以及許多其他屬性。
選項鍵
cornerDashArray − 此屬性接受一個陣列,允許我們為控制角指定虛線樣式。例如,如果我們傳遞一個值為 [2,3] 的陣列,則表示 2px 的虛線和 3px 的間隙,並無限重複此樣式。
示例 1
控制角的預設外觀
讓我們看一個程式碼示例,該示例描述了文字物件的控制角的預設外觀。由於我們沒有使用 cornerDashArray 屬性,因此沒有顯示任何虛線樣式。
<!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 appearance of controlling corners</h2> <p>You can select the text object to see the default appearance of controlling corners</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 text object var text = new fabric.Text("Add Sample Text Here", { width: 200, top: 70, left: 50, cornerColor: "#87a96b", }); // Add it to the canvas canvas.add(text); </script> </body> </html>
示例 2
將 cornerDashArray 屬性作為鍵傳遞
在此示例中,我們將 cornerDashArray 屬性的值設定為 [1,2,1]。這意味著將建立一種虛線樣式,其中包含一條 1px 長的線,然後是 2px 的間隙,然後再次繪製一條 1px 長的線,之後會留出 1px 的間隙,依此類推。
<!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 cornerDashArray property as key</h2> <p>You can select the text object to see the dash pattern of controlling corners</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 text object var text = new fabric.Text("Add Sample Text Here", { top: 70, left: 50, cornerColor: "#87a96b", cornerDashArray: [1, 2, 1], }); // Add it to the canvas canvas.add(text); </script> </body> </html>
廣告