编程

Fabric.js 学习笔记

chenmo · 8月11日 · 2021年 · · 本文共31189个字 · 预计阅读104分钟404次已读
learn_fabric

Fabric.js 学习笔记

导语

HTML 上想要绘制基本的简单形状的时候,通常都会使用 Canvas 进行操作。纵然 Canvas 原生API已经可以做许多事情,但在绘制复杂图形和一些特定情况需要改变图片的时候,原生的API十分复杂。

Fabric.js 就是解决这个问题的。

工作中的项目需要用到 Fabric.js 对用户进行个性化设置,因此,在这里对 Fabric.js 进行一些简单的记录。

安装

也可以下载最新的 JS 文件,通过 Script标签 引入。为方便记录,以下内容全部都是使用原生的html进行演示。

使用

前面已经说了,Fabric.js 是基于Canvas的,因此,需要有一个Canvas画布。

实例

Fabric.jshtml上的画布联系起来,也就是创建一个fabric实例

基本形状

Fabric 提供了 7 种基本形状:

  • fabric.Rect (矩形)
  • fabric.triangle (三角形)
  • fabric.Polygon (多边形)
  • fabric.Circle (圆)
  • fabric.Ellipse (椭圆)
  • fabric.Line (线)
  • fabric.Polyline (多条线绘制成图形)

创建图形主要分为三步:

  1. 创建fabric实例
  2. 创建图形对象
  3. 将图形对象添加到实例上

矩形

三角形

圆形

图形属性

属性 解释 备注
height Number 对象的高度 默认值:0
width Number 对象的宽度 默认值:0
left Number 对象左边位置(X坐标) 默认以Object中点进行计算。
可以设置originx={left|center|right}。默认0
top Number 对象上边位置(Y坐标) 与Left类似
angle Number 顺时针旋转角度(以角为单位) 默认值:0
backgroundColor String 背景颜色  
borderColor String 激活状态时,控制器边框颜色 默认值:rgba(102,153,255,0.75)
cornerColor String 激活状态时,四角的颜色 默认值:rgba(102,153,255,0.5)
cornerStrokeColor String 激活状态时,控制器点的颜色  
cornerSize Number 激活状态时,控制器点的大小 默认值:12
cornerStyle String 激活状态时,控制器点的央视 可改为“circle”
fill String 对象填充的颜色  
visible Boolean 对象是否显示 默认值:True。否则不会在Canvas上渲染

绘制图像

  • URL绘制
  • img 标签 绘制

绘制图像主要分为三步:

  1. 创建fabric实例
  2. 创建图像对象
  3. 将图像对象添加到实例上

图像属性

属性 解释 备注
height Number 对象的高度 默认值:0
width Number 对象的宽度 默认值:0
left Number 对象左边位置(X坐标) 默认以Object中点进行计算。
可以设置originx={left|center|right}。默认0
top Number 对象上边位置(Y坐标) 与Left类似
angle Number 顺时针旋转角度(以角为单位) 默认值:0
backgroundColor String 背景颜色  
borderColor String 激活状态时,控制器边框颜色 默认值:rgba(102,153,255,0.75)
cornerColor String 激活状态时,四角的颜色 默认值:rgba(102,153,255,0.5)
cornerStrokeColor String 激活状态时,控制器点的颜色  
cornerSize Number 激活状态时,控制器点的大小 默认值:12
cornerStyle String 激活状态时,控制器点的央视 可改为“circle”
fill String 对象填充的颜色  
visible Boolean 对象是否显示 默认值:True。否则不会在Canvas上渲染

动画

使用

参数说明

参数 说明 备注
动画属性 String 可选择任意对象的自带属性
如:left, top, angle, width, height, visible等
必选
动画的最终状态情况 语句 动画修改的最终状态 必选
动画的细节 Object 可以指定动画的细节:持续时间,回调,动效等 非必选

根据第二个参数的值,可以将动画分为绝对动画相对动画

动效

第三个参数主要有

  • duration 默认为 500ms。可以用来改变动画的持续时间。
  • from 允许指定动画属性的起始值(如果我们不希望使用当前值)。
  • onChange 在每帧变化时重新渲染,可看到动画效果
  • onComplete 动画结束之后的回调。
  • easing 动效函数。可取的值是fabric.util.ease包下,有easeOutBounce, easeInCubic , easeOutCubic, easeInElastic, easeOutElastic, easeInBounce 和 easeOutExpo.

颜色

无论你是使用十六进制,RGB 或 RGBA 颜色,Fabric 都能处理的很好

定义颜色

颜色转换

我们还可以用另一种颜色叠加,或将其转换为灰度版本。

渐变

Fabric 通过 setGradient 方法支持渐变,在所有对象上定义。调用 setGradient(‘fill’, { … })就像设置一个对象的“fill”值一样。

Fabric.js 学习笔记

文本

fabric.Text 对象对于文本,提供了比 canvas 更丰富的功能,包括:

  • 支持多行 Multiline support 不幸的是,原生文本方法忽略了新建一行。
  • 文本对齐 Text alignment 左,中,右。使用多行文本时很有用。
  • 文本背景 Text background 背景也支持文本对齐。
  • 文字装饰 Text decoration 下划线,上划线,贯穿线。
  • 行高 Line Height 在使用多行文本时有用。
  • 字符间距 Char spacing 使文本更紧凑或更间隔。
  • 子范围 Subranges 将颜色和属性应用到文本对象的子对象中。
  • 多字节 Multibyte 支持表情符号。
  • 交互式画布编辑 On canvas editing 可以直接在画布上键入文本。

 

0 条回应