purestart vue-fabric.
npm install vue-fabric --save
下载customiseControls.min.js .和 fabric.min.js .到本地 static/js/文件下
本地项目 index.html 引入
<script type="text/javascript" src="./static/js/fabric.min.js"></script>
<script type="text/javascript" src="./static/js/customiseControls.min.js"></script>
在main.js中
import 'vue-fabric/dist/vue-fabric.min.css';
import { Fabric } from 'vue-fabric';
使用
<vue-fabric ref="canvas" :width="width" :height="height"></vue-fabric>
Name
Type
Default
Description
id
String
"canvas"
id
width
Number
0
canvas width
height
Number
0
canvas height
方法调用
this.$refs.canvas.方法名(params)
createImage(url,options) 绘制图片
params
Type
Description
url
String
image url
options
Object
id(唯一标识该元素,以下每个方法 options 参数都带 id),width,height,left,top,registeObjectEvent (Boolean 是否注册对象事件),evented 是否可被点击选中,selectable 是否禁止被选中...其它属性
createImageByImg(img,options) 绘制图片
params
Type
Description
img
Image对象
new Image对象
options
Object
id(唯一标识该元素,以下每个方法 options 参数都带 id),width,height,left,top,registeObjectEvent (Boolean 是否注册对象事件),evented 是否可被点击选中,selectable 是否禁止被选中...其它属性
createTextbox(text,options) 绘制文本
params
Type
Description
text
String
text content
options
Object
width,left,top,fill(颜色),fontSize,id,fontFamily,strokeWidth,stroke,textAlign,textBackgroundColor,lineHeight,fontWeight,...其它属性
createItext(text,options) 绘制可编辑文本(可换行显示文本)
params
Type
Description
text
String
text content
options
Object
width,left,top,fill(颜色),fontSize,id,editable(是否可编辑),fontFamily,fontSize,strokeWidth,stroke,textAlign,textBackgroundColor,lineHeight,fontWeight,...其它属性
options
Type
Description
left
Number
left
top
Number
top
width
Number
Rect width
height
Number
Rect height
fillColor
String
Rect fillColor
id
String
唯一标识 id
其它属性兼容
all
兼容原生其它属性
freeDrawConfig(options) 开启/关闭自由绘制(画笔)
options
Type
Description
isDrawingMode
Boolean
是否开启自由绘制 true/false
color
String
绘制线颜色
drawWidth
Number
绘制线宽
eraseDrawConfig(options) 开启自由绘制橡皮擦(只对当前绘制画布有效)
options
Type
Description
color
String
选填,擦除颜色默认白色
drawWidth
Number
橡皮擦线宽
options
Type
Description
x,y,x1,y1
Number
line points,直线两点坐标
fillColor
String
fillColor 填充颜色
strokeColor
String
strokeColor 绘制颜色
其它属性兼容
all
兼容原生其它属性
drawDottedline(options) 绘制虚线
options
Type
Description
x,y,x1,y1
Number
line points,直线两点坐标
color
String
绘制线颜色
drawWidth
Number
绘制线宽
offset
Number
默认 6,每隔 offset 个像素空 empty 个像素
empty
Number
默认 3,每隔 offset 个像素空 empty 个像素
其它属性兼容
all
兼容原生其它属性
drawArrowLine(options) 绘制箭头直线
options
Type
Description
x,y,x1,y1
Number
line points,直线两点坐标
color
String
绘制线颜色
drawWidth
Number
绘制线宽
fillColor
Number
默认透明,填充颜色
theta
Number
默认 35,箭头角度大小
headlen
Number
默认 35,箭头角度大小
其它属性兼容
all
兼容原生其它属性
createTriangle(options) 绘制三角形
options
Type
Description
x,y,x1,y1,x2,y2
Number
三角形 3 点坐标位置
left,top
Number
position 位置
color
String
绘制线颜色
fillColor
String
fillColor 填充颜色
drawWidth
Number
绘制线宽
其它属性兼容
all
兼容原生其它属性
createEqualTriangle(options) 绘制等边三角形
options
Type
Description
left,top
Number
position 位置
fill
String
fillColor 填充颜色
width
Number
三角形底边宽度
height
Number
三角形高
其它属性兼容
all
兼容原生其它属性
drawByPath(pathArray,options) 根据轨迹绘制图形
params
Type
Description
pathArray
Array
轨迹所在点数组,按顺序正时针或逆时针,如三角形 [[50, 50], [120, 120], [80, 160]]
options
Object
left,top,strokeColor,strokeWidth,fillColor,...其它属性
createCircle(options) 绘制圆
options
Type
Description
left,top
Number
position 位置
fill
String
fillColor 填充颜色
radius
Number
圆形半径
其它属性兼容
all
兼容原生其它属性
createEllipse(options) 绘制椭圆
options
Type
Description
rx,ry
Number
rx , ry 椭圆两个长轴尺寸和短轴尺寸
left,top
Number
position 位置
fillColor
String
fillColor 填充颜色
strokeColor
String
strokeColor 绘制线颜色
angle
Number
angle 倾斜角度
其它属性兼容
all
兼容原生其它属性
params
Type
Description
angle
Number
旋转角度
setSelection(flag) 设置画布是否可以框选
params
Type
Description
flag
Boolean
画布是否可以框选
setBackgroundImage(options) 设置画布背景图片
options
Type
Description
imgUrl
String
背景图片 Url
angle
Number
旋转角度
opacity
Number
背景图片透明度
width
Number
默认为canvas宽度 背景图片宽度
height
Number
默认为canvas高度 背景图片高度
scaleX
Number
水平缩放
scaleY
Number
垂直缩放
crossOrigin
String
可为'anonymous',加载跨域图片
setBackgroundColor(color) 设置画布背景颜色
params
Type
Description
color
String
背景颜色
toggleMirror(options) 设置图片元素镜像翻转
options
Type
Description
flip
String
可选值 X,Y 默认值 X , 镜像翻转 X,Y
setCornerIcons(options) 自定义操作元素图片
options
Type
Description
size
Npmber
图片大小 px
borderColor
String
图片边框颜色
cornerBackgroundColor
String
设置背景颜色
cornerShape
String
形状,默认'rect' ,可选'rect', 'circle'
tl
String
top left 左上角元素图片地址(本地只能 static 下的图片)
tr
String
top right 右上角元素图片地址(本地只能 static 下的图片)
bl
String
bottom left 左下角元素图片地址(本地只能 static 下的图片)
br
String
bottom right 右下角元素图片地址(本地只能 static 下的图片)
ml
String
middle left 中间左边元素图片地址(本地只能 static 下的图片)
mr
String
middle right 中间右边元素图片地址(本地只能 static 下的图片)
mtr
String
middle top 顶部元素图片地址(本地只能 static 下的图片)
toNextLayer() 设置当前选中画布到下一层
toLastLayer() 设置当前选中画布到上一层
toBottomLayer() 设置当前选中画布到底层
getObjects() 获取当前画布上的所有元素对象
toDataUrl() 返回当前画布的 base64 图片
loadFromJSON(json,cb) 从 json 对象中加载画布数据
params
Type
Description
json
Object
json 对象
cb
Function
加载完成回调函数
removeCurrentObj() 删除当前选中对象
getEditObj() 返回当前选中对象,并不在画布上显示,用于编辑当前元素
setEditObj(obj) 设置添加对象到画布
deactivateOne(obj) 取消选中对象(框选的时候选中多个对象使用)
<vue-fabric ref="canvas" @selection:created="selected" :width="width" :height="height"></vue-fabric>
name
Type
Description
mouse:down
event
mouse down
mouse:up
event
mouse up
mouse:move
event
mouse move
mouse:dblclick
event
mouse dblclick
mouse:over
event
mouse over
mouse:out
event
mouse out
name
Type
Description
selection:created
event
选中 canvas 元素对象,单选和多选都会触发此事件
selection:updated
event
selection updated
selection:cleared
event
selection cleared
before:selection:cleared
event
before selection cleared
object:added
event
当有元素被添加进来时候触发
object:removed
event
object removed
object:modified
event
object modified
object:rotating
event
object rotating
object:scaling
event
object scaling
object:moving
event
object moving
v0.1.4 * 初始化组件库
v0.1.8 * 新增 api 常用接口创建文档
新增画板事件,鼠标事件、选中事件等
新增绘制三角形
新增绘制虚线
新增画笔自由绘制
新增绘制箭头
新增取消选中方法
修改绘制图片(createImage 方法)不能定位 top 的 BUG
修改镜像翻转函数 toggleMirror ,新增参数 options ,X 翻转和 Y 翻转
fix webpack-dev-server 版本导致的 npm run dev fail
新增方法 drawByPath 根据轨迹绘制形状图形
新增属性id 修复一个页面使用多个vue-fabric没有渲染成功的问题
修复id = "canvas"的情况下会报错的问题
新增优化图片无法被选中属性设置 evented 和 selectable 感谢 @jessieyyy
新增取消单个选中的方法 deactivateOne(obj)
修复image top 和 left 定位bug
新增createImageByImg(img, options)方法 其中参数img是Image对象
新增setSelection(flag) 设置画布是否可以框选