## 使用笔记 ## ### 常用属性 ### canvas.isDrawingMode = true; 可以自由绘制<br> canvas.selectable = false; 控件不能被选择,不会被操作<br> canvas.selection = true; 画板显示选中<br> canvas.skipTargetFind = true; 整个画板元素不能被选中<br> canvas.freeDrawingBrush.color = "#E34F51" 设置自由绘画笔的颜色<br> freeDrawingBrush.width 自由绘笔触宽度<br> canvas.setZoom(2); 设置画板缩放比例 ---------- ### 方法 ### add(object) 添加<br> insertAt(object,index) 添加<br> remove(object) 移除<br> forEachObject 循环遍历 <br> getObjects() 获取所有对象<br> item(int) 获取子项<br> isEmpty() 判断是否空画板<br> size() 画板元素个数<br> contains(object) 查询是否包含某个元素<br> fabric.util.cos<br> fabric.util.sin<br> fabric.util.drawDashedLine 绘制虚线<br> getWidth() setWidth()<br> getHeight()?<br> clear() 清空<br> renderAll() 重绘<br> requestRenderAll() 请求重新渲染<br> rendercanvas() 重绘画板?<br> getCenter().top/left 获取中心坐标<br> toDatalessJSON() 画板信息序列化成最小的json<br> toJSON() 画板信息序列化成json<br> moveTo(object,index) 移动?<br> dispose() 释放?<br> setCursor() 设置手势图标<br> getSelectionContext()获取选中的context<br> getSelectionElement()获取选中的元素<br> getActiveObject() 获取选中的对象<br> getActiveObjects() 获取选中的多个对象<br> discardActiveObject()取消当前选中对象 <br> isType() 图片的类型?<br> setColor(color) = canvas.set("full","");<br> rotate() 设置旋转角度<br> setCoords() 设置坐标<br> ---------- ### 事件 ### object:added<br> object:removed<br> object:modified<br> object:rotating<br> object:scaling<br> object:moving<br> object:selected 这个方法v2已经废弃,使用selection:created替代,多选不会触发<br> before:selection:cleared<br> selection:cleared<br> selection:updated<br> selection:created<br> path:created<br> mouse:down<br> mouse:move<br> mouse:up<br> mouse:over<br> mouse:out<br> mouse:dblclick<br> ---------- ### IText的方法 ### selectAll() 选择全部<br> getSelectedText() 获取选中的文本<br> exitEditing() 退出编辑模式?<br> ---------- ### 绘制直线 ### var line = new fabric.Line([10, 10, 100, 100], {<br> fill: 'green',<br> stroke: 'green', //笔触颜色<br> strokeWidth: 2,//笔触宽度<br> });<br> canvas.add(line);<br> ---------- ### 绘制虚线 ### 在绘制直线的基础上添加属性strokeDashArray:Array<br> example:<br> var line = new fabric.Line([10, 10, 100, 100], {<br> fill: 'green',<br> stroke: 'green',<br> strokeDashArray:[3,1] <br> });<br> canvas.add(line);<br> strokeDashArray[a,b] =》 每隔a个像素空b个像素。<br> ---------- ### 可绘制对象 ### fabric.Circle 圆<br> fabric.Ellipse 椭圆<br> fabric.Line 直线<br> fabric.Polygon<br> fabric.Polyline<br> fabric.Rect 矩形<br> fabric.Triangle 三角形<br> ---------- ### 图片去掉选中边框和旋转,且只能移动,不可操作 ### oImg.hasControls = false; 只能移动不能(编辑)操作<br> oImg.hasBorders = false; 去掉边框,可以正常操作<br> hasRotatingPoint = false; 不能被旋转<br> hasRotatingPoint 控制旋转点不可见<br> scaleToHeight(value, absolute) 缩放图片高度到value scaleToWidth(value, absolute) 缩放图片宽度到value 示例代码如下: fabric.Image.fromURL("img.jpg", function (oImg) { img.scaleToHeight(400, false); //缩放图片的高度到400 img.scaleToWidth(400, false); //缩放图片的宽度到400 canvas.add(oImg); oImg.hasControls = oImg.hasBorders = false; });