porno

Hacklink

Hacklink Panel

Hacklink panel

Agb99

Hacklink

Hacklink panel

Backlink paketleri

Hacklink Panel

Hacklink

Hacklink

Hacklink

Hacklink panel

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink panel

Eros Maç Tv

Hacklink panel

Hacklink panel

taraftarium24

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink satın al

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Illuminati

Hacklink

Hacklink Panel

Hacklink

Hacklink Panel

Hacklink panel

Hacklink Panel

Hacklink

Masal oku

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink

https://ort.org/signup.php

Hacklink

Hacklink panel

Postegro

Masal Oku

Hacklink

romabet

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Hacklink

Hacklink

Hacklink

Hacklink panel

Hacklink panel

Best Porn Sites

Hacklink panel

Hacklink panel

Hacklink

Hacklink

Hacklink Panel

Hacklink

websiteseochecker

Hacklink

Hacklink

Buy Hacklink

Hacklink

Hacklink

Hacklink

Hacklink satın al

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink panel

Hacklink

Masal Oku

Hacklink panel

bbo303

Hacklink

Hacklink

หวยออนไลน์

Hacklink

Hacklink satın al

Hacklink Panel

nakitbahis

nakitbahis

jojobet

jojobet giriş

hititbet

firma rehberi

jojobet giriş

Elexbet

sekabet

1xbet

royalbet

mavibet

Suratbet

marsbahis

tarabet güncel

bahiscasino

casino siteleri

bahislion

deneme bonusu veren siteler

bahsegel

casinolevant

madridbet

jojobet giriş

casibom

casibom

betzula

pashagaming

marsbahis giriş

enbet

deneme bonusu veren yeni siteler

interbahis

jojobet giriş

meritking giriş

marsbahis giriş

sweet bonanza

piabellacasino

kulisbet

vidobet

casinolevant

pulibet

dinamobet

casinovale

matadorbet

vevobahis

betper

betcio

kulisbet

markajbet

bahiscasino

betebet

betper

jojobet

marsbahis

primebahis

hititbet

artemisbet

artemisbet giriş

nakitbahis

nakitbahis giriş

marsbahis

marsbahis giriş

bahiscasino

bahiscasino

betnano

betnano

casivera

casivera

betkolik

betkolik

odeonbet

betcio

sekabet

betcio

celtabet

celtabet

efesbet

efesbet

odeonbet giriş

atlasbet

atlasbet

aresbet

aresbet

millibahis

millibahis

betlike

betlike

wojobet

wojobet

interbahis

interbahis

casivera

casivera

vipslot

vipslot

romabet

romabet

palacebet

palacebet

betpipo

betpipo

teosbet

teosbet

enobahis

enobahis

kralbet

kralbet

ibizabet

ibizabet

enbet

enbet

romabet

romabet

teosbet

teosbet

sonbahis

sonbahis

alobet

alobet

masterbetting

masterbetting

kingbetting

kingbetting

palacebet

palacebet

mavibet

mavibet

megabahis

megabahis

holiganbet

holiganbet

elitcasino

elitcasino giriş

zirvebet

hızlıcasino

hızlıcasino giriş

zirvebet

lunabet

lunabet giriş

matbet

betsmove

grandpashabet

marsbahis

casibom

vdcasino

jojobet güncel giriş

Hacklink panel

kingroyal

kingroyal

madridbet

meritking

meritking giriş

pusulabet

madridbet

madridbet giriş

kingroyal

imajbet

kingroyal giriş

kingroyal

kingroyal giriş

meritking

meritking giriş

grandpashabet

casinoroyal

imajbet

palacebet

pusulabet

kingroyal

madridbet

编程

Fabric.js 学习笔记

chenmo · 8月11日 · 2021年 · · 本文共31189个字 · 预计阅读104分钟1391次已读
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 条回应