如何使用Fabric.js创建多个形状
How do I create multiple shapes with Fabric.js?
我希望能够使用双击在画布上创建多个矩形。但是,我只能创建一个矩形。还有,有没有一种方法可以为创建的每个矩形添加一个ID?我希望能够在任何时候访问我想要的任何矩形,并更改其属性。
var i=0;
function drawRectangle() {
if (rectClickToggle) {
getMouse(event);
var canvas = new fabric.Canvas('drawArea');
canvas.add(new fabric.Rect({width:20,height:20,fill:'#f55',top:my,left:mx}));
canvas.item(i).set({borderColor:'red',cornerColor:'green',cornerSize:6,transparentCorners: false});
canvas.setActiveObject(canvas.item(i));
i++;
}
}
drawArea.ondblclick = drawRectangle;
每次调用drawRectangle函数都是在重新定义画布。尝试将该代码移动到drawRectangle函数之外。
编辑-用于绘制许多矩形。
var canvas = new fabric.StaticCanvas('canvas-ele');
canvas.setHeight(300);
canvas.setWidth(300);
var drawRect = function(e) {
canvas.add(new fabric.Rect({
left: e.x - 10,
top: e.y - 10,
fill: 'rgba(100,0,0,0.3)',
width: 72,
height: 72,
stroke: 'black'
})
);
};
var canvasEle = document.getElementById('canvas-ele');
canvasEle.ondblclick = function (e) {
drawRect(e);
};
canvas.renderAll();
试试小提琴http://jsfiddle.net/coryasilva/Y5fu5/
***顺便说一句,我不建议使用双击;这会导致糟糕的用户体验)
编辑#2
我现在更明白了。这是怎么回事?
http://jsfiddle.net/Y5fu5/3/
相关文章:
- 在创建时使用 Sequelize 保存时获取关联
- 在 JavaScript 循环中创建和使用变量
- 如何迭代数据为谷歌地图创建标记(使用express/jquery/ajax)目前正在获取SyntaxError
- 用javascript创建对象(使用新对象)有什么优点
- 如何创建可以使用 AngularJS 上的控制器访问的帮助程序类
- 创建可以使用 HTML 5 平移和缩放的大型图形的最佳方法
- 创建一个使用其他 js 库的可嵌入 JavaScript 小部件
- 如何检查cookie是否存在,即使它是在其他应用程序中创建的?(使用 JS 或 C#)
- 多个页面之前创建由使用 jsfiddle 的嵌套列表视图引起的事件
- NodeJS - 创建一个使用 Sequelize 函数的 Promise 函数
- 是否可以创建一个使用选择器名称的jQuery函数
- 创建一个使用javascript函数的ActionLink
- JavaScript 和 jQuery,创建和使用一个对象.属性返回未定义
- 在less.css中创建和使用用户函数
- 创建和使用iOS设置.在PhoneGap中使用JavaScript绑定值
- 创建JS:使用"容器”;
- 使用传单创建圆(使用正半径)
- Javascript如何创建和使用带有纯二进制数据的blob
- 如何创建一个使用http的工厂.Get并把它传递给angular中的多个控制器
- 创建一个使用ng-model并具有唯一作用域的指令