关于fabricjs常用

private init () {
    this.canvas = new fabric.Canvas(this.$refs.canvas, {
      // isDrawingMode: this.editable,
    });
    this.canvas.on('mouse:down', this.mouseDown);
    this.canvas.on('mouse:move', this.mouseMove);
    this.canvas.on('mouse:up', this.mouseUp);
    this.canvas.on('mouse:dblclick', this.onPolygonDrawEnd);
    this.canvas.on('selection:updated', e => {
      this.edit(e.target);
    });
    this.canvas.on('selection:created', e => {
      this.edit(e.target);
    });
    this.canvas.on('object:modified', this.onChange);
    this.canvas.on('object:moving', this.mouseMoving); // 阻止对象移动到画布外面
  }
  
private mounted () {
    this.init();
  }
  1. 获得画布上的所有对象:
    let itemList = this.canvas.getObjects();
  2. 禁止元素移动但是响应单击事件
    {lockMovementX: true, lockMovementY: true}
  3. 禁止元素缩放,依然显示点
    依然显示点:{lockScalingX: true,lockScalingY:true}
    不显示点:{hasControls:false}
  4. 常用的设置
    selectable:false, //禁止选中当前元素
    hasBorders: false, //不显示选中时的边
    hasControls:false, //不显示控制的那9个按钮
  5. 层级
    bringToFrontI() 移至顶层
    sendToBack() 移至底层
    bringForward(). 上移一层
    sendBackwards下移一层
    moveTo() 自定义层级

https://blog.csdn.net/weixin_39415598/article/details/125388939

**

对象常用属性

**

属性作用
left横坐标
top纵坐标
width宽度
height高度
originX对象转换的水平原点(‘left’,’right’,’center’)
originY对象转换的垂直原点(‘left’,’right’,’center’)
angle偏转角度
snapAngle设置对象在旋转时锁定的角度。比如设置值为45则对象在旋转时只能以45度为一个单位
fill对象的填充色
backgroundColor对象的背景色
hasControls值为false时无法对对象进行旋转和拉伸
selectable对象是否可选中,false时无法选中
lockRotationtrue时无法旋转对象
lockMovementXtrue时对象无法水平移动
lockScalingXtrue时对象无法水平缩放
lockMovementYtrue时对象无法垂直移动
lockScalingYtrue时对象无法垂直缩放
scaleX水平方向缩放倍数
scaleY垂直方向缩放倍数
stroke线颜色
strokeWidth字体
fontSize字号
type标记对象类型

**

对象常用方法

**

方法作用
object.set()设置对象属性,如rect.set({top: 50,left:100})
object.scale()缩放对象
object.rotate()旋转对象
object.getBoundingRect()返回对象的边界矩形(左,顶部,宽度,高度)的坐标
object.setCoords()当对象修改了坐标、长宽、缩放、角度、倾斜程度等可能改变对象位置的属性时需要通过该方法重新计算位置
object.intersectsWithObject(other)检查对象是否与另一个对象相交

**

画布方法

**

方法作用
canvas.setActiveObject(obj)将给定对象设置为画布上唯一的活动对象
canvas.getObjects()获取画布上的所有实例对象
canvas.add(obj)添加实例对象
canvas.remove(obj)移除对象
canvas.renderAll()重新渲染画布
canvas.sendToBack(o)将对象或多个选择的对象移动到绘制对象堆栈的底部
canvas.discardActiveObject()丢弃当前的活动对象
canvas.clear()清除实例的所有上下文
canvas.dispose()清除canvas元素并删除所有事件侦听器
canvas.backgroundColor设置画布背景色

https://blog.csdn.net/daicooper/article/details/79800718


版权声明:本文为weixin_43957384原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。