FabricJS – 移动线条时如何设置边框不透明度?
在本教程中,我们将学习如何在使用 FabricJS 移动线条时设置线条边框的不透明度。线条元素是 FabricJS 提供的基本元素之一,用于创建直线。由于线条元素在几何上是一维的,并且不包含内部,因此它们永远不会填充。我们可以通过创建fabric.Line的实例,指定线条的x和y坐标并将其添加到画布上来创建线条对象。为了在画布中移动线条对象时更改其边框的不透明度,我们使用borderOpacityWhenMoving属性。
语法
new fabric.Line(points: Array, { borderOpacityWhenMoving: Number }: Object)
参数
points − 此参数接受一个数组点,该数组确定(x1, y1)和(x2, y2)值,分别是线条起点和终点的x轴和y轴坐标。
options (可选) − 此参数是一个对象,它为我们的线条提供额外的自定义选项。使用此参数,可以更改与对象相关的许多属性,其中borderOpacityWhenMoving就是一个属性,例如原点、笔划宽度等。
选项键
borderOpacityWhenMoving − 此属性接受一个数字,用于指定在移动对象时边框的不透明度。其中,1 表示完全不透明,0 表示透明。默认值为 0.4。
显示borderOpacityWhenMoving属性的默认行为
示例
让我们来看一个代码示例,该示例显示了boderOpacityWhenMoving属性的默认行为。当我们选择线条对象并将其在画布上移动时,选择边框的不透明度将从 1(完全不透明)更改为 0.4,使其看起来有点半透明。
<!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>Displaying the default behaviour of borderOpacityWhenMoving property</h2> <p> You can select the line object and drag it around to see that the border opacity changes from being fully opaque(1) to being translucent(0.4) </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, }); // Add it to the canvas canvas.add(line); </script> </body> </html>
将borderOpacityWhenMoving作为键传递
示例
让我们来看一个代码示例,该示例演示如何为borderOpacityWhenMoving属性赋值。在本例中,我们将其值设置为 0。这意味着当我们移动线条时,边框不透明度将变为 0,并且不可见。
<!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 borderOpacityWhenMoving as key</h2> <p> You can select the line object and drag it around to see that the borders are no longer visible when being moved </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, borderOpacityWhenMoving: 0, }); // Add it to the canvas canvas.add(line); </script> </body> </html>
广告